转换为json时,下划线下划线/蛇形表壳

时间:2015-11-21 18:38:42

标签: json node.js express sequelize.js

使用Node和Sequelize,是否可以定义一个使用camelCase作为属性的模型,但是在转换为json时使用下划线/ snake case?

目前;

var User = seq.define('user', {
    id: {
        type: Sequelize.INTEGER,
        primaryKey: true
    },
    shortLivedToken: {
        type: Sequelize.STRING,
        field: 'short_lived_token'
    },
    longLivedToken: {
        type: Sequelize.STRING,
        field: 'long_lived_token'
    }
}, {
    underscored: true,
    underscoredAll: true,
});

调用response.json(user)

时变为
{
  "id": null,
  "shortLivedToken": "abcde",
  "longLivedToken": "fghji",
  "updated_at": "2015-11-21T18:32:20.181Z",
  "created_at": "2015-11-21T18:32:20.181Z"
}

我希望它是

{
  "id": null,
  "short_lived_token": "abcde",
  "long_lived_token": "fghij",
  "updated_at": "2015-11-21T18:32:20.181Z",
  "created_at": "2015-11-21T18:32:20.181Z"
}

有什么想法吗?

1 个答案:

答案 0 :(得分:2)

  

不可能。属性名称用于获取值toJSON   使用获取值的方法。覆盖toJSON或不使用camel   套用属性名称。

https://github.com/sequelize/sequelize/issues/4906