[英]Mongoose hooks don't work on macOS
似乎Mongoose挂钩在macOS上不起作用。 没有显示错误,但是没有触发钩子。
我构建的一个最小示例是:
const Mongoose = require("mongoose");
Mongoose.connect("mongodb://localhost/test", (err, db) => {
console.log(err);
// => undefined
// (success)
// Create the model
const t = Mongoose.model("t", {
s: "string"
});
// Do something pre save
t.schema.pre('save', function(next) {
// This is not triggered
console.log(">>>>>>>>>>>>>");
console.log(this);
next();
});
// Insert a new object
new t({ s: "foo" }).save((err, data) => {
console.log(err, data);
});
});
我是否犯了一个我看不到的错误,还是我错过了其他任何东西? 根本不调用预保存。 保存后也会发生同样的事情。
save()
应该触发预保存回调。
如何解决这个问题?
我正在使用macOS Sierra。 据我所知,它正在我的Linux机器上运行(当前不在此处)。
我尚未运行macOS,但仍在运行OS X El Capitan。 我已经使用Mongoose 4.8.1测试了上面的代码,在这里也不起作用。 但是我注意到您正在创建模型,并在模型创建后将模式附加到该模型。 创建模式,附加挂钩并初始化模型时,它似乎正在工作。
// Create the model
var testSchema = new Mongoose.Schema({
s: "string"
});
// Do something pre save
testSchema.pre('save', function(next) {
// This is triggered
console.log(">>>>>>>>>>>>>");
console.log(this);
next();
});
// Create model of schema
var testModel = Mongoose.model("Test", testSchema);
// Insert a new object
new testModel({ s: "foo" }).save((err, data) => {
console.log(err, data);
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.