BookshelfJS:所有整数都以字符串形式返回[pg]

时间:2016-05-11 06:17:36

标签: node.js pg bookshelf.js

bool似乎按预期工作,json类型(postgres)也是如此,但我的所有id cols都填充为字符串(打破了前端代码)

有办法吗?解决它,或b。告诉书架那个字段是一个整数吗?

更新

根据要求,这里有一些代码段。我只是用节点/书架测试水域,所以这不是复杂的代码;它主要是从入门指南开始的。数据库是我们已经使用了2年的现有数据库,id cols对于所有表格肯定是int

一个很好的例子,Calendars和

var Appointment = bs.Model.extend({
    tableName: 'ec__appointments',
});

var Calendar = bs.Model.extend({
    tableName: 'ec__calendars',

    appointments: function() {
        return this.hasMany(Appointment, 'calendar_id');
    },
});

对于这一个,日历ID下降为int,但当我fetch({withRelated:['appointments']})时,appointment.id是一个字符串。

{
  "calendars": [
    {
      "id": 2,
      "name": "Default Calendar",
      "created_at": "2015-03-06T09:35:58.000Z",
      "updated_at": "2016-03-23T03:28:07.000Z",
      "appointments": [
        {
          "id": "107",
          "calendar_id": "2",
          "name": "Test",
          "starts_at": null,
          "ends_at": null,
          "created_at": "2015-05-29T23:13:20.000Z",
          "updated_at": "2015-05-29T23:13:20.000Z",
        },

1 个答案:

答案 0 :(得分:1)

您可以使用以下代码解决此问题:

var pg = require('pg');
pg.types.setTypeParser(20, 'text', parseInt);

此处有更多详情:https://github.com/tgriesser/knex/issues/387