修复 jsonClient 在 post 失败

restify jsonClient failing at post

createJsonClient 到 post 我的数据到像

这样的 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 对象,post 如何成为 restify.createJsonClient 中的对象?

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

payload = JSON.parse(payload).Body;

来自 restify 文档:

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);
});