TypeError:无法读取未定义的属性“drop”
Posted
技术标签:
【中文标题】TypeError:无法读取未定义的属性“drop”【英文标题】:TypeError: Cannot read property 'drop' of undefined 【发布时间】:2019-03-16 12:05:39 【问题描述】:我正在做摩卡咖啡测试。我必须在 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
。帮我解决这个错误
【问题讨论】:
【参考方案1】:恐怕你不能这样放弃收藏:
db.User.drop()
如果你想删除收藏,那么你应该这样做:
mongoose.connection.db.dropCollection('User', function(err, result) ...);
【讨论】:
感谢您的帮助。一些教程中的 db.User.drop() 然后它显示错误。以及如何删除集合中的文档。如果我得到这个答案可能会有所帮助【参考方案2】:正如@drinchev 所说,您可以通过以下方式删除所有文档:
Model.remove(, function(err)
console.log('collection removed')
);
在你的情况下:
after(()=>
db.User.remove(, (err) =>
if (err) throw err;
);
)
希望对你有帮助。
【讨论】:
以上是关于TypeError:无法读取未定义的属性“drop”的主要内容,如果未能解决你的问题,请参考以下文章
如何使用自定义错误消息捕获“TypeError:无法读取未定义的属性(读取'0')”?