Sailsjs:不能使用Date属性在bootstrap上创建虚拟对象

时间:2015-10-19 19:01:24

标签: javascript json datetime sails.js

我能够在添加"日期"之前创建在bootstrap创建虚拟用户对象。属性。在bootstrap.js中我有:

module.exports.bootstrap = function(cb) {
    var dummyData = [
        {
            "firstName":"Jane",
            "lastName":"Doe",
            "dateofbirth": 1279703658 //timestamp
        }
    ]

    User.count().exec(function(err, count){
        if(err){
            return cb(err);
        }

        if(count == 0){
            User.create(dummyData).exec(function(){
                cb();
            });
        }
    });
};

User.js很简单,看起来像这样:

module.exports = {

  attributes: {
    firstName : {
        type : 'string',
        required : true
    },
    lastName : {
        type : 'string',
        required : true
    },

    dateofbirth : {
        type : 'date'
    }
  }
};

当我尝试在浏览器中创建相同的对象时(sails漂亮的CRUD功能)我收到有关日期的错误:

{
  "error": "E_VALIDATION",
  "status": 400,
  "summary": "1 attribute is invalid",
  "model": "User",
  "invalidAttributes": {
    "dateofbirth": [
      {
        "rule": "date",
        "message": "`undefined` should be a date (instead of \"123454345\",     which is a string)"
      }
   ]
 }
}

所以问题是如何用date属性创建这样的对象?

1 个答案:

答案 0 :(得分:1)

date(或同等的dateTime)接受,例如ISO日期字符串。所以,你的例子看起来像:

var dummyData = [
        {
            "firstName":"Jane",
            "lastName":"Doe",
             // "1970-01-15T19:28:23.658Z"
            "dateofbirth": new Date(1279703658).toISOString() 
        }
    ]