我在node.js中有一个Rest API,它需要很多时间来响应,因为它向 vendor vendor 发送请求,一旦响应完全准备好,它就会返回我想要的结果,因为结果正在准备中,它应该能够在前端 react 端显示它。预先感谢您的任何帮助和您的时间
这是我的 Controller
module.exports.search = async (req, res) => {
try {
let params = req.query;
params = _.extend(params, req.body);
const result = await modules.Hotel.Search.search(req.supplierAuth, params);
res.json(result);
} catch (e) {
global.cli.log('controller:hotels:search: ', e);
res.status(500).json({ message: e.message });
}
};
这是我的前端服务
export const getHotels = (filters, options = {}) => {
const queryString = new URLSearchParams(options).toString();
return post(`/api/hotels/search?${queryString}`, filters);
};
最佳答案
最好的解决方案是使用 streams和 pipe()
结果进入 Express 的 res
对象,类似于 this guy's approach .
您必须修改modules.Hotel.Search.search(....)
并使其使用流。
关于javascript - 长时间运行的 Node REST API 需要很长时间才能响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58540684/