BookshelfJS:所有整数都作为字符串返回 [pg]

BookshelfJS: all ints are being returned as strings [pg]

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

有没有办法a.修复它,或者 b。告诉书架那个字段是一个整数?

更新

应要求,这里有一些代码片段。我只是用 node/bookshelf 试水,所以这不是复杂的代码;它主要是在入门指南之外。该数据库是我们已经使用了 2 年左右的现有数据库,id cols 绝对是 int 所有表

一个很好的例子,日历和

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",
        },

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

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

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