我正在尝试将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中是否存在错误。