我正在使用请求模块,并且正在发出成功的请求。我得到了响应,但是我不知道如何将该响应返回到我的路线以返回给客户。
我的路线:
'use strict';
const displayBuild = require('../lib/display-build');
module.exports = {
method: ['PUT', 'POST'],
path: '/displayBuild',
handler: function(request, h) {
console.log('Displaying build config...');
console.log(request.payload)
try {
displayBuild(request, h);
console.log("h:", h)
return {'success': 201}
} catch (err) {
console.log(err);
return {'ERR': err}
}
}
};
displayBuild函数:
var request = require('request');
var URL = "url"
const displayBuild = function (req, res) {
var options = {
uri: URL,
method: 'POST',
headers: {
"content-type": "application/json"
},
json: req.payload
};
request(options, function (error, response, body) {
if (!error && response.statusCode == 200) {
console.log('success')
} else {
console.log('ERROR:', error)
throw error
}
return body;
});
}
module.exports = displayBuild;
显然return body
还不够。
我想将尸体放回原处,并将其作为对客户的回应。
谢谢!
答案 0 :(得分:0)
我自己通过使用异步和等待功能解决了它。我所做的是使处理函数成为异步函数
async (request, h) => {
...
var body = await displayBuild(...)
}
并从displayBuild函数返回了一个新的Promise。
如果有人需要低级解释,请告诉我。