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