node.js - 如何在同一模型的模式方法中创建模型实例?

标签 node.js model mongoose

主题。我想在它的静态方法中初始化一个新的模型实例:

var Schema = new mongoose.Schema({...});

//...

Schema.statics.createInstance = function (name, pass) {
    var newPerson = new Person; // <--- or 'this', or 'Schema'?
    newPerson.name = name;
    newPerson.pass = pass;
    newPerson.save();
    return newPerson;
}

// ...

module.exports = db.model("Person", Schema);

我该怎么做?

最佳答案

你走在正确的轨道上; this 是模式在 schema.statics 方法中注册的模型,因此您的代码应更改为:

Schema.statics.createInstance = function (name, pass) {
    var newPerson = new this();
    newPerson.name = name;
    newPerson.pass = pass;
    newPerson.save();
    return newPerson;
}

Leonid 处理 save 回调是正确的,即使它只是为了记录错误。

关于node.js - 如何在同一模型的模式方法中创建模型实例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14018683/

相关文章:

javascript - 当我运行我为移动网站(Angular)编写的 Protractor 脚本时,Chrome 和模拟器都会自动关闭

ruby-on-rails - 如何在Rails模型中获取当前用户

r - 在 R 中构建 Pareto/NBD 模型时出现 cbind 错误(BTYD 包)

ios - 核心数据替代方案

node.js - node-sass 将 Node 升级到 4.0.0 时抛出错误

javascript - Azure Functions [Node.js] : context. BindingData 不包含我的路由参数(如文档所示)

javascript - 让 NodeJS/JSDom 在抓取之前等待完全渲染

node.js - 在node.js中使用forEach函数时出现问题

javascript - 将对象转换为数组进行存储并返回数组以在 JavaScript 中应用

javascript - 我如何在路由模型nodejs中获取获取的记录