繁体   English   中英

猫鼬挂钩在macOS上不起作用

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM