Sails Waterline Model-属性解析为postgres bigint列的字符串

时间:2019-04-04 16:11:54

标签: sails.js waterline sails-postgresql

我将Sails与它的PostgreSQL水线ORM一起使用。我在模型属性定义中的defaultsTo参数上遇到了问题。

这是我的模型定义的一部分:

module.exports = {
  tableName: 'table',

  attributes: {
    [...]
    reach: {
      type: 'number',
      defaultsTo: 0,
    }
    [...]
  }
}

使用Model.create()时,出现以下控制台警告:

Warning: After transforming columnNames back to attribute names for model `model`,
 a record in the result has a value with an unexpected data type for property `reach`.
The corresponding attribute declares `type: 'number'` but instead
of that, the actual value is:
` ` `
'0'
` ` ` 

我有一堆number类型属性,因此这会在控制台中引发很多警告。

在这一点上,我认为这是一条水线问题,但是您有避免该警告的解决方法吗?


编辑

我的警告仅出现在Postgres“ BIGINT”列中 我开始理解JS无法将postgres BIGINT作为数字来处理,因此必须将其转换为字符串。

1 个答案:

答案 0 :(得分:0)

我找到了一种避免警告的方法: 设置属性的另一种方式:

attributes: {
  [...]
  reach: {
    type: 'ref',
    columnType: 'bigint',
    isNumber: true,
    defaultsTo: 0
  },
  [...]
}