代码之家  ›  专栏  ›  技术社区  ›  CJ Thompson

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

  •  0
  • CJ Thompson  · 技术社区  · 8 年前

    bool 似乎和预期的一样 json 类型(postgres),但我的所有id列都填充为字符串(中断前端代码)

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

    使现代化

    根据请求,这里有一些代码片段。我只是用节点/书架测试waters,所以这不是复杂的代码;这基本上是《入门指南》中的内容。该数据库是我们使用了二十几年的现有数据库 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如下所示 整数 ,但当我 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 回复  |  直到 8 年前
        1
  •  1
  •   marclar    8 年前

    您可以使用以下代码修复此问题:

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

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