【发布时间】:2013-08-31 23:53:22
【问题描述】:
我在 Mongoose 中使用 save 中间件在执行某些操作时在数据库中创建活动日志。类似的东西
UserSchema.post("save", function (doc) {
mongoose.model("Activity").create({activity: "User created: " + doc._id});
});
这似乎工作正常,但问题是我无法测试它,因为无法将 回调 传递给post(这可能没有意义)。我使用mocha 对此进行了测试:
User.create({name: "foo"}, function (err, user) {
Activity.find().exec(function (err, act) {
act[0].activity.should.match(new RegExp(user._id));
done();
});
});
问题是 Activity.create 在调用 .find 之前显然没有完成。我可以通过将.find 包裹在setTimeout 中来解决这个问题,但这对我来说似乎很老套。有没有办法测试异步猫鼬中间件操作?
【问题讨论】:
标签: node.js mongodb mongoose mocha.js should.js