解决jsonClient失败的问题

时间:2016-04-05 13:08:42

标签: json node.js post restify

createJsonClient将我的数据发布到像

这样的restify服务器
console.log(typeof payload); // string
payload = JSON.parse(payload).Body;
console.log(payload); //object

client.post('/sqs', payload, function (err, req, res, obj) {
if (err) 
   callback(err, null);
else {
   console.log(obj);
}
});

但是我得到了

{ [InternalError: Unexpected token o]\n  message: 'Unexpected token o',\n  statusCode: 500,\n  body: { code: 'InternalError', message: 'Unexpected token o' },\n  restCode: 'InternalError',\n  name: 'InternalError' }

有效负载是JSON.parse之后的有效JSON对象,如何在restify.createJsonClient中发布对象?

1 个答案:

答案 0 :(得分:1)

您的有效负载是一个对象,而您需要发送JSON字符串,所以只需删除行

payload = JSON.parse(payload).Body;
来自restify docs:

client.post('/foo', { hello: 'world' }, function(err, req, res, obj) {
  assert.ifError(err);
  console.log('%d -> %j', res.statusCode, res.headers);
  console.log('%j', obj);
});