我正在尝试在测试之前和之后清除我的Users集合:
android:layout_width="@dimen/image_view_width"
我也在before(function(done) {
mongoose.connection.collections['users'].drop(function(err) {
mongoose.connection.collections['users'].insert(user, done);
});
});
after(function(done) {
mongoose.connection.collections['users'].drop(done);
});
drop
的情况下尝试过
before
我收到了这些错误:
before(function(done) {
// mongoose.connection.collections['users'].drop(function(err) {
mongoose.connection.collections['users'].insert(user, done);
// });
});
after(function(done) {
mongoose.connection.collections['users'].drop(done);
});
我的代码之前正在运行,现在却没有。如何创建集合?
更新:我在命令行中运行1) Auth API "before all" hook:
TypeError: Cannot read property 'drop' of undefined
at Context.<anonymous> (server/api/auth/auth.spec.js:18:45)
2) Auth API "after all" hook:
TypeError: Cannot read property 'drop' of undefined
at Context.<anonymous> (server/api/auth/auth.spec.js:24:45)
,现在它看起来像是集合和文档:
但我仍然遇到同样的问题。
更新2:这有效:
db.collection.users.insert({ foo: 'bar' })
现在,当我运行旧代码时,它也可以运行:
before(function(done) {
// mongoose.connection.collections['users'].drop(function(err) {
// mongoose.connection.collections['users'].insert(user, done);
// });
User.remove({}).exec(function() {
User.create(user, done);
});
});
这里有一些奇怪的事情......
答案 0 :(得分:0)
mongoose.connection.collections['users']
正在返回undefined
,然后您尝试在其上调用drop()
。因此,您正在删除一个不存在的集合,因为您已经删除了它 - 上次after
运行时。
在尝试使用它之前,请尝试检查它是否存在,例如:
var users = mongoose.connection.collections['users'];
if (users) {
users.drop(...callback...);
}
此外,当您在终端中运行db.collection.users.insert({ foo: 'bar' })
时,如果该集合不存在,则会自动创建该集合。