【问题标题】:Can't get defaultsTo to work with waterline/sailsjs无法让 defaultsTo 与 waterline/sailsjs 一起使用
【发布时间】:2016-03-27 22:48:43
【问题描述】:

当我在数据库中创建新项目时,我试图为字段设置默认值,但我无法使其工作。

我目前使用的是 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"
    }
}

知道我忘记了什么吗?

谢谢!

【问题讨论】:

  • 尝试使用蓝图创建以进行测试.... localhst:PORT/users/create?firstName=XYZ 看看你得到了什么!

标签: javascript mongodb sails.js waterline


【解决方案1】:

我今天早些时候遇到了类似的问题。我可以通过添加 required is 'true' 来解决这个问题。

新用户模型示例:

 module.exports = {

    schema: true,

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

我希望这会有所帮助。

【讨论】:

  • 太棒了!它解决了我的问题!虽然这似乎不适用于嵌套对象,但您有什么建议吗? ` 属性:{ 首选项:{ 语言:{ 类型:'string',defaultsTo:'en',必需:true,} } } `
  • @alexmngn 我对 SailsJS 还很陌生,但我认为做这样的事情的正确方法是有一个单独的偏好模型。您将在两者之间创建关联。 SailsJS Associations
猜你喜欢
  • 1970-01-01
  • 2016-01-16
  • 1970-01-01
  • 1970-01-01
  • 2014-10-31
  • 2018-01-02
  • 2016-11-14
  • 2015-02-01
  • 2019-05-10
相关资源
最近更新 更多