gpt4 book ai didi

javascript - Mongoose:更新文档时转换为日期失败

转载 作者:可可西里 更新时间:2023-11-01 09:19:22 24 4
gpt4 key购买 nike

我在我的项目中使用 Mongoose,在我使用 Date 字段的模式之一中,如下所示:

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

我可以毫无问题地使用该字段创建文档。当我 console.log 这个日期创建后,我得到:

reservationDay:  Thu Nov 20 2014 04:45:00 GMT+0100 (CET)

但是,当我尝试更新此文档时出现问题(即使不更改 reservationDay 字段)。这是我收到的错误消息:

name: 'CastError',
message: 'Cast to date failed for value "20/11/2014 04:11" at path "reservationDay"' } CastError: Cast to date failed for value "20/11/2014 04:11" at path "reservationDay"

以下是我在服务器端更新此文档的方式:

Reservation.findOne({ _id: id }).exec(function(err, reservation) {
if (err) {
//handle
}
if (!reservation) {
//handle
}
reservation = extend(reservation, req.body);
reservation.save(function(err, updatedReservation) {
if (err) {
//handle
}
return res.json(reservation);
});
});

并且 req.body 中的日期没有改变。

任何可能导致此错误的想法?

谢谢!

最佳答案

"20/11/2014 04:11" 是无效的 ISODate 格式。您在某处将 reservationDate 转换为无效格式的字符串。您需要将其转换为有效的 ISODate 格式(月前日):

new Date("11/20/2014 04:11") // Thu Nov 20 2014 04:11:00 GMT+0100 (CET)
new Date("2014/11/20 04:11") // Thu Nov 20 2014 04:11:00 GMT+0100 (CET)
new Date("20/11/2014 04:11") // Invalid Date

为了便于操作日期格式,我建议使用 moment.js

关于javascript - Mongoose:更新文档时转换为日期失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26827584/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com