【发布时间】:2020-12-22 10:34:59
【问题描述】:
当我尝试在 NodeJs 中呈现页面时出现此错误,我正在尝试做的是
- 用户提交的表单运行良好
- 显示加载页面,res.render("loading")
- 在服务器中完成该过程后,我需要它转到另一个页面,带参数
我也试过res.redirect('/');
我用谷歌搜索了很多解决方案,但没有任何效果,而且我还是 NodeJs 的初学者
我正在使用
"body-parser": "^1.18.3",
"consolidate": "^0.15.1",
"ejs": "^2.6.1",
"express": "^4.16.4",
错误
Error [ERR_HTTP_HEADERS_SENT]: Cannot set headers after they are sent to the client
at ServerResponse.setHeader (_http_outgoing.js:526:11)
at ServerResponse.header (/root/payment/node_modules/express/lib/response.js:771:10)
at ServerResponse.send (/root/payment/node_modules/express/lib/response.js:170:12)
at done (/root/payment/node_modules/express/lib/response.js:1008:10)
at /root/payment/node_modules/consolidate/lib/consolidate.js:645:7
at /root/payment/node_modules/consolidate/lib/consolidate.js:161:5
at Promise._execute (/root/payment/node_modules/bluebird/js/release/debuggability.js:384:9)
at Promise._resolveFromExecutor (/root/payment/node_modules/bluebird/js/release/promise.js:518:18)
at new Promise (/root/payment/node_modules/bluebird/js/release/promise.js:103:10)
at promisify (/root/payment/node_modules/consolidate/lib/consolidate.js:154:10)
at Function.exports.ejs.render (/root/payment/node_modules/consolidate/lib/consolidate.js:641:10)
at /root/payment/node_modules/consolidate/lib/consolidate.js:181:27
at /root/payment/node_modules/consolidate/lib/consolidate.js:101:5
at FSReqCallback.readFileAfterClose [as oncomplete] (internal/fs/read_file_context.js:63:3)
代码
app.post("/pay", (req, res) => {
res.render("loading");
doPayPalOut(req, res)
});
async function doPayPalOut(req, res) {
{... }
await paypal.payout.create(create_payout_json, function (error, payout) {
if (error) {
console.log("==========", error.response);
// throw error;
} else {
res.render('/success', { pdet: payout });
}
});
}
【问题讨论】:
标签: javascript node.js http ejs