尝试存储postgres JSON类型时nodejs出错

时间:2014-05-13 22:47:45

标签: javascript json node.js postgresql

我正在尝试将JSON POST请求存储到postgresql数据库中。我已经定义了配置文件模型,将id存储为int,将match_caps存储为JSON。

profile_model.js

db.define('profile', {
  id         : Number,
  match_caps : Object
});

一旦发出POST请求,我想存入postgresql。

profile.js

req.on('data', function(chunk){
        data += chunk;
});

req.on('end', function(chunk){ 
    var obj = JSON.parse(data);
    db.models.profile.create([{
       id         : obj.id,
       match_caps : obj.match_caps
    }], function(err) {//error}
});

我正在发布以下内容:

{"id":101, "match_caps":{"x":1, "y":2}} 

我收到以下错误:

error: invalid input syntax for type json
    at Connection.parseE (/home/dev/node_modules/pg/lib/connection.js:526:11)
    at Connection.parseMessage (/home/dev/node_modules/pg/lib/connection.js:356:17)
    at Socket.<anonymous> (/home/dev/node_modules/pg/lib/connection.js:105:22)
    at Socket.EventEmitter.emit (events.js:95:17)
    at Socket.<anonymous> (_stream_readable.js:746:14)
    at Socket.EventEmitter.emit (events.js:92:17)
    at emitReadable_ (_stream_readable.js:408:10)
    at emitReadable (_stream_readable.js:404:5)
    at readableAddChunk (_stream_readable.js:165:9)
at Socket.Readable.push (_stream_readable.js:127:10)

我认为我正在正确地发布JSON。我已经测试了POST的id,它很成功。 我有console.log(数据),并收到输出

{"id":101, "match_caps":{"x":1, "y":2}}

我尝试过JSON.stringify(obj.match_caps)。我收到了同样的错误。

我正在使用节点ORM来定义我的模型

我不确定match_caps的POST语法是否正确...或者orm中是否存在错误。

0 个答案:

没有答案