【问题标题】:How do I give "document does not exist" feedback to the user when using the Mongoose deleteOne function?使用 Mongoose deleteOne 功能时,如何向用户反馈“文档不存在”?
【发布时间】:2019-07-20 19:45:28
【问题描述】:

我正在使用 NodeJS、Commander 和 Mongoose 创建一个简单的 CLI。如果我的删除函数被调用并且它没有在数据库中找到文档,我希望它说“文档不存在”。但是,每当我调用该函数时,它总是运行 else 代码并说文档已被删除。即使数据库中有 0 个文档。如何向用户提供正确的反馈?

  const deleteNote = (label) => {
  const search = new RegExp(label, 'i');
  Note.deleteOne({'label': search,},
  function(error, doc) {
    if (error || !doc) {
      console.log('Document does not exist');
      mongoose.connection.close();
    } else {
      console.log(`Document deleted`);
      mongoose.connection.close();
}});};

【问题讨论】:

    标签: node.js mongoose command-line-interface


    【解决方案1】:

    使用回调中的第二个参数。

    const mongoose = require("mongoose")
    const Schema = mongoose.Schema
    mongoose.connect('mongodb://localhost/stackoverflow', {useNewUrlParser: true});
    
    const NoteSchema = new Schema({
        title: String,
        label: String
    })
    const NoteModel = mongoose.model("Note", NoteSchema)
    
    function run(label) {
        NoteModel.deleteOne({ label }, (err,result)=>{
            console.log(result) // { n: 0, ok: 1, deletedCount: 0 }
            // deletedCount shows number of docs deleted
            if(result.deletedCount >  0) {
                console.log("DELETED")
            } else {
                console.log("NOT DELETED")
            }
        })            
    }
    
    run("Label 2")
    

    【讨论】:

      猜你喜欢
      • 2017-12-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-10
      • 1970-01-01
      相关资源
      最近更新 更多