首页 > 开发 > JS > 正文

用mongoose Model.create(doc,cb)无效

2017-09-05 12:35:56  来源:网友分享

如题,跟踪进不了回调,在sechma的pre save hook能跟踪到确实执行到了pre save,但是没有保存到数据库。新添加了post save hook 但log中没有输出,说明save没执行完成。

  1. sechma

var mySchema = new mongoose.Schema({    employee_name: { type: String },    employee_no: { type: String },    month: { type: Number },    date: [String],    lastModifyDate: Date});mySchema .pre("save", function (next) {        this.lastModifyDate = Date.now();    console.log("save one:", this);});
  1. 业务层

var createPromise = function (doc,newData) {    return new Promise(function (fulfill, reject) {    ...省略doc的校验 doc为上个promise传入的查询结果    myModel.create({                    employee_name: newData.emp_name,                    employee_no: newData.emp_no,                    month: newData.month,                    overtime_date: newData.addDates.rmArr(newData.rmDates)                }, function (err, res) {                    if (err) return reject(err);                    return fulfill(res);                });});createPromise.then(function(res){...}).catch(...)

现在跟踪进入到create后没有执行then或者catch中的console.log

解决方案

mySchema .pre("save", function (next) {        this.lastModifyDate = Date.now();    console.log("save one:", this);    next();});