Date.now()返回错误的date

我有这个mongoose模式

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} } ] 

});

我的应用程序的每一个post都是返回到2017年8月20日下午10:01但我在哪里是2小时以上。 这里是HTML,我正在使用Angular4。

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

我只是不明白为什么

mongoose在你启动的时候正在接收计算值,而不是函数。 你应该把它传递给它,而不是运行它。 无论何时使用括号,您正在执行该函数而不是引用它。 我曾经有同样的问题。

mongoose,你可以做如下。 使用update()findOneAndUpdate()

{upsert:true}选项

你可以使用$ setOnInsert,而不必每次调用新的MyModel()。

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

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

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

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