水线数据时间验证:新的Date()被拒绝

时间:2017-06-13 00:26:45

标签: javascript coffeescript sails.js waterline

我的一个Sails / Waterline模型定义如下:

/**
 * Meeting.js
 */

module.exports = {

  attributes: {
    datetime: {
      type: 'datetime',
      required: true,
    },

    agenda: {
      model: 'agenda',
    },

    minutes: {
      model: 'minutes',
    },
  }
};

我有一个控制器,其工作是将测试数据填充到数据库中。部分内容如下(coffeescript):

create: (req, res) ->
  meeting = Meeting.create(
    datetime: new Date(),
  ).exec((err, new_meeting) ->
    return res.negotiate(err) if err
    # do more stuff
  )

但是,当我尝试运行它时,我收到以下错误:

"invalidAttributes": {
  "datetime": [
    {
      "rule": "datetime",
      "message": "Value should be a datetime (instead of 1497312500210, which is a number)"
    }
  ]
},
// and so on

为什么此验证失败?我传递了Date个对象。由于JavaScript没有datetime个对象,Date显然是正确的。除了Waterline不喜欢它。 Waterline想要什么?

如果不是很明显,我对节点,Sails,Waterline等都很陌生。我主要处理Python。

1 个答案:

答案 0 :(得分:0)

糟糕。在上一次代码迭代中,我创建了datetime值为Date().now()。我发布的错误是为了这个。当我将代码更改为问题中的版本时,我忘记了我必须每次都重新启动Sails 我更改了任何内容,因为当文件发生更改时,Sails无法确定正确的操作是自动重新加载。所以,问题就解决了。