带有 sails-mongo 的 Sails Js 强制类型不正确。我究竟做错了什么?

Sailjs with sails-mongo is enforcing type incorrectly. What am I doing wrong?

我有一个 sails 应用程序,它只使用一个简单的索引并简单地创建(插入)到 mongo 数据库。当我输入正确类型的数据并硬编码为模型中规定的类型时,出现错误。

url insert err = [Error (E_VALIDATION) 1 attribute is invalid] Invalid attributes sent to urls:
 • status
   • Value should be a number (instead of "0", which is a string)

这是一个非常小的新项目,因此没有对默认设置进行太多更改。

因为我在创建中有 console.log,所以我可以准确地看到我发送到 urls.create 的内容:

{ url: 'http://www.dina.com',
  status: 0,
  statusDate: '2016-11-19T19:46:10.804Z' }

我没有做任何强制类型的事情,看起来我在服从类型。为什么我会收到错误?

模型看起来像:

// urls.js
module.exports = {
  attributes: {
    url : { type: 'string' },
    status: { type: 'number'},
    statusDate: {type: 'date'}
  }
};

我的 config/models.js 的架构设置为 false:

// config/models.js
module.exports.models = {
  connection: 'DigitalOceanMongodbServer',
  migrate: 'safe',
  schema: false
};

我的控制器创建了一个具有硬编码状态和正确类型的 statusDate 的新对象:

  // urlsController.js
  create: function (req, res) {

    let url = req.body.url; 
    if(!url) return res.json({failure: 'empty url'});

    let isValid = sails.validurl.isUri(url);
    if(!isValid) return res.json({failure: 'url is not valid'});   

    let newObj = {
      url: url,
      status: 0,    <---- obviously a number
      statusDate: new Date().toISOString() <---obviously a date
    }

    console.log(newObj);

    urls.create(newObj).exec(function createCB(err,created){ 
      if (err){
        return res.negotiate(err);
      } else {
        return res.ok(created); 
      }
    }); 
  }

在模型类型中指定 "integer" 而不是 "number"。我没有在文档中找到 "number"。

参见:http://sailsjs.org/documentation/concepts/models-and-orm/attributes