Date.now()返回错误的日期

时间:2017-08-20 22:22:19

标签: javascript node.js angular date

我有这个猫鼬模式

const postSchema= new Schema({
body:{ type: String, required:true, validate:bodyValidators},
createdBy: { type: String},
to: {type:String, default:null },
createdAt: { type:Date, default:Date.now()},
likes: { type:Number,default:0},
likedBy: { type:Array},
dislikes: { type:Number, default:0},
dislikedBy: { type:Array},
comments: [
    {
        comment: { type: String, validate: commentValidators},
        commentator: { type: String}
    }
]

});

我的应用上的每个帖子都会在2017年8月20日晚上10:01返回,但我在这里的时间超过了2个小时。 这是HTML,我使用的是Angular4。

{{post.createdAt | date: 'MMM dd, yyyy'}} at {{post.createdAt | date:'shortTime'}}

我无法理解为什么

3 个答案:

答案 0 :(得分:1)

Mongoose在您启动时接收值计算,而不是函数。你应该传递它而不是运行它。无论何时使用括号,您都在执行函数而不是引用它。我曾经遇到过同样的问题。

答案 1 :(得分:1)

mongoose 中,您可以执行以下操作。使用更新() findOneAndUpdate()

{upsert:true} 选项

你可以使用 $ setOnInsert ,而不必在每次调用新的MyModel()时都传递它们。

var update = {
  updatedAt: new Date(),
  $setOnInsert: {
     createdAt: new Date()
  }
};

答案 2 :(得分:0)

您以错误的方式分配了值。试试这个:

createdAt: { 
    type: Date, 
    default: Date.now 
}

阅读此链接以进一步了解: http://mongoosejs.com/docs/guide.html