可能未处理的CastError:对Mongoose上的值"function now(){[native code]}的强制转换失败

Eze*_*nda 5 datetime mongoose mongodb node.js express

运行Express应用程序时出现以下错误

可能未处理的CastError:对于值"函数now(){[本机代码]},转换为日期失败

日期字段在模型上定义为:

updated: {
  type: Date,
  default: Date.now
}
Run Code Online (Sandbox Code Playgroud)

所以,我正在记录响应,该字段带有这种格式

updated: Thu May 21 2015 16:21:32 GMT-0300 (ART)
Run Code Online (Sandbox Code Playgroud)

实际上我们使用的是Mongoose v 3.4.0

我还尝试使用Moment.js格式化响应,但警告仍然出现在终端上.

我很感激你的帮助.

小智 2

老问题,但正如 Ken 提到的,要创建或更新,请为架构/模型提供日期值

sendHelpDate: Date.now()

这将保存到数据库,而"sendHelpDate" : ISODate("2018-06-27T10:49:29.328+0000"), 不是传递 Date.now 函数,如下所示:

    message: 'Cast to Date failed for value "[Function: now]" at 
    path "sendHelpDate"',
    name: 'CastError',        
    stringValue: '"[Function: now]"',
    kind: 'Date',
    value: [Function: now],
    path: 'sendHelpDate',
    reason: [Object]                                                         
    _message: 'Bookings validation failed', 
    name: 'ValidationError' }
Run Code Online (Sandbox Code Playgroud)

希望额外的细节能帮助将来的人