TypeError:无法读取未定义的属性“ drop”

时间:2018-10-11 11:58:01

标签: node.js mongodb mongoose mocha chai

我正在进行摩卡咖啡测试。我必须在before函数中连接到MongoDB,并且需要在after函数中删除集合中的文档。

before("authenticate user", async () => {
        mongoose.connect('mongodb://localhost:27017/mo-identity')
        db = mongoose.connection;
        db.once('open', function() {
            console.log('We are connected to test `enter code here`database!')
        })
        .on('error', ()=>{console.error.bind(console, 'connection error')})
        })

    after(()=>{
        db.User.drop()
    })

以上是我的代码。 user是一个集合。执行此代码时,出现此错误TypeError: Cannot read property 'drop' of undefined。帮我解决这个错误

2 个答案:

答案 0 :(得分:0)

恐怕您不能像这样丢弃收藏集:

db.User.drop()

如果要删除收集,则应执行以下操作: mongoose.connection.db.dropCollection('User', function(err, result) {...});

答案 1 :(得分:0)

正如@drinchev所说,您可以通过执行以下操作删除所有文档:

Model.remove({}, function(err) { 
    console.log('collection removed') 
});

您的情况:

after(()=>{
    db.User.remove({}, (err) => {
      if (err) throw err;
    });
})

希望有帮助。