我有一个节点 - 休息 - 客户端,我用它来调用外部应用程序,下面的调用返回400,我也看到服务器的响应,但任务没有完成。
1-从nodejs进行api调用的最佳方法是什么?
2-如何使用promise for rest client module?
restCall.js
var Client = require('node-rest-client').Client;
var client = new Client();
var arg2 = {
data: {"workerId":"aworkerId",
"variables":{
"caseIdFound":{"value": true}
}
}
}
//Complete Task
function completeTask(taskId) {
client.post('https/url/'+taskId+'/complete',arg2,function(data,response) {
console.log('CompleteTaskResponse',data);
console.log('ResponseComplete',response.body);
})
}
completeTask(3455l);
答案 0 :(得分:1)
不熟悉node-rest-client
模块,但有些事情对我有用。
回调中的错误参数在哪里?通常你应该能够做类似
的事情 post('yourUrl', data, (error, data) => {
...
})
通过这种方式,您可以查看错误响应并查看出现了什么问题。我个人建议使用库needle,如果不是http
模块本身。
要使用此承诺,您可以尝试宣传图书馆。不确定这个库是否支持,但是你可以使用像bluebird这样的库
Promise.promisifyAll(nodeClient)
或者,您可以将调用包装在您自己的函数中,如下所示
function post (url, data) {
return new Promise((resolve, reject) => {
client.post(url, data, (error, response) => {
if (error) {
reject(error)
} else {
resolve(response.body)
}
}
})
}
然后你可以做像
这样的事情post(myUrl, { ... })
.then((info) => { ... })
.catch((error) => { ... })