Mongoose中间件功能未返回预期结果

时间:2018-01-21 16:10:07

标签: node.js mongodb mongoose middleware

我创建了一个pre-init中间件函数,用于格式化模式中的Date字段。

StadiumSchema.pre('init', function(next, stadium) {
    let date = new Date(stadium.built);
    let built = date.getDate() + '/' + date.getMonth() + '/' + date.getFullYear();
    stadium.built = built;

    console.log(stadium);
    console.log(built);

    next();
});

在该功能中,它确实显示了stadium.built已被更改。但是在体育场内没有改变的功能之外没有改变。

1 个答案:

答案 0 :(得分:1)

就我记忆而言,回调函数中的参数顺序是不同的,例如:

StadiumSchema.pre('init', function(stadium, next) {
   let date = new Date(stadium.built);
   let built = date.getDate() + '/' + date.getMonth() + '/' + date.getFullYear();
   stadium.built = built;

   console.log(stadium);
   console.log(built);

   next();
});
不过,如果你在这里没有做任何异步工作,那么你也可以让它同步,如:

StadiumSchema.pre('init', function(stadium) {
   let date = new Date(stadium.built);
   let built = date.getDate() + '/' + date.getMonth() + '/' + date.getFullYear();
   stadium.built = built;

   //console.log(stadium);
   //console.log(built);
});

但是,请参阅文档以获取更多信息。