javascript - HapiJS 路由从请求返回响应
问题描述
我正在使用请求模块并且正在发出成功的请求。我得到了回复,但我不知道如何将此回复返回到我的路线以返回给我的客户。
我的路线:
'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}
}
}
};
显示构建功能:
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
是不够的。
我想将身体返回到我的路线并将其作为响应返回给我的客户。
谢谢!!
解决方案
我通过使用 async 和 await 功能自己解决了这个问题。我所做的是使处理函数成为异步函数
async (request, h) => {
...
var body = await displayBuild(...)
}
并从 displayBuild 函数返回一个新的 Promise。
如果有人想要较低级别的解释,请给我发消息。
推荐阅读
- sql - 如果 UpdatedDate 为 NULL,则派生列中的 Null 条件切换到 createdDate
- reactjs - 热模块更换不适用于多个配置
- php - PHP无法加载整个网页
- solr - 聚合 Solr 方面
- jquery - 尝试显示 300,000 条记录时出现 MaximumJsonLength 属性错误
- go - 无法获取媒体统计信息 VLC
- google-apps-script - 有关已删除文件备份失败的错误消息
- heroku - 如何在 Dokku 中进行 Heroku 风格的应用程序监控?
- javascript - useContext() 返回未定义
- python - 基于一列中给出的值(以数组格式)的逐行异常值/异常检测