2016-03-27 42 views
0

我想在数据库中创建新项目时将字段的默认值设置为一个字段,但我无法使其工作。无法获取默认值要使用waterline/sailsjs

我使用SailsJS 0.12.1目前,这是最新版本

这是我的文件看起来像:

型号/ Users.js

module.exports = { 

    schema: true, 

    attributes: { 
     firstName: { 
      type: 'string', 
      required: true, 
     }, 
     role: { 
      type: 'string', 
      enum: ['admin', 'user', 'limited', 'suspended', 'deleted'], 
      defaultsTo: 'limited' 
     }, 
    } 
} 

当元素在数据库中创建,我没有得到role值。它看起来像这样:

{ 
    "_id": { 
     "$oid": "56f8616163a59cf813998f8a" 
    }, 
    "firstName": "Alex", 
    "createdAt": { 
     "$date": "2016-03-27T22:40:33.151Z" 
    }, 
    "updatedAt": { 
     "$date": "2016-03-27T22:40:33.151Z" 
    } 
} 

任何想法我忘了?

谢谢!

+0

sails-mongo适配器 – alexmngn

+0

尝试用蓝图创建测试.... localhst:PORT/users/create?firstName = XYZ 然后看看你在做什么! – vkstack

回答

1

今天早些时候我有类似的问题。我能够通过添加所需的“真实”来解决此问题。

新用户模型的实例:

module.exports = { 

    schema: true, 

    attributes: { 
     firstName: { 
      type: 'string', 
      required: true, 
     }, 
     role: { 
      type: 'string', 
      required: true, 
      enum: ['admin', 'user', 'limited', 'suspended', 'deleted'], 
      defaultsTo: 'limited' 
     }, 
    } 
} 

我希望这有助于。

+0

真棒!它修复了我的问题!虽然这似乎不适用于嵌套对象,你有建议吗? '属性:{ 喜好:{ 语言:{ 类型: '串', defaultsTo: '恩',需要 :真实, }} } ' – alexmngn

+0

@alexmngn我是相当新的SailsJS,但我认为做这样的事情的正确方法是为偏好设置一个单独的模型。你会在两者之间建立联系。 [SailsJS协会](http://sailsjs.org/documentation/concepts/models-and-orm/associations) – jdaltonchilders