【发布时间】:2021-06-17 07:44:15
【问题描述】:
这里是初学者。我了解当 api 尝试多次设置响应时会出现以下错误消息。而且我也实现了node js的异步特性。
但我仍然无法调试问题。请帮帮我。
router.route("/new").post((req, res) => {
//Variable declarations
sql.open(connectionString, function(err, conn){
var pm = conn.procedureMgr();
pm.callproc('dbo.AddRequestDetails',[request_zone,request_type,requester_type,request_flow,
sales_order,requester_email,quotation,request_reason,request_status,
StatusFlag, bot_status,bot_comments,additional_notification_to,additional_information, approver,
old_value,new_value,new_shipping_point,partner_name,text_type,text_type_action,table_data], function(err,results,output){
console.log("Hi");
if (err != null) {
console.log("error",err.message);
var user = req.ge('User');
var scriptName = path.basename(__filename);
var value = {err: err.message, user: user, scriptName:scriptName};
axios.post(configData.SERVER_URL + "/api/logToDB", value);
res.status(400).json(err.message);
} else {
console.log("Data successfully added in Main Table & Sub Table");
res.json("Data successfully added in Main Table & Sub Table");
}
});
});
});
module.exports = router;
我的输出如下所示。
Hi
Data successfully added in Main Table & Sub Table
POST /api/add/new 200 44.882 ms - 51
Hi
Data successfully added in Main Table & Sub Table
_http_outgoing.js:558
throw new ERR_HTTP_HEADERS_SENT('set');
^
Error [ERR_HTTP_HEADERS_SENT]: Cannot set headers after they
are sent to the client
at ServerResponse.setHeader (_http_outgoing.js:558:11)
at ServerResponse.header (C:\Users\C572103\Documents\One
Order Change\OOC Portal\backend\node_modules\express\lib\response.js:767:10)
at ServerResponse.send (C:\Users\C572103\Documents\One Order Change\OOC Portal\backend\node_modules\express\lib\response.js:170:12)
at ServerResponse.json (C:\Users\C572103\Documents\One Order Change\OOC Portal\backend\node_modules\express\lib\response.js:267:15)
at C:\Users\C572103\Documents\One Order Change\OOC Portal\backend\routes\uploadData.js:58:13
at Object.callback (C:\Users\C572103\Documents\One Order
Change\OOC Portal\backend\node_modules\msnodesqlv8\lib\procedure.js:233:13)
at onProcedureRaw (C:\Users\C572103\Documents\One Order Change\OOC Portal\backend\node_modules\msnodesqlv8\lib\procedure.js:60:22)
at C:\Users\C572103\Documents\One Order Change\OOC Portal\backend\node_modules\msnodesqlv8\lib\reader.js:199:15
at onStatementComplete (C:\Users\C572103\Documents\One Order Change\OOC Portal\backend\node_modules\msnodesqlv8\lib\driver.js:185:11)
at Object.end (C:\Users\C572103\Documents\One Order Change\OOC Portal\backend\node_modules\msnodesqlv8\lib\driver.js:318:19) {
code: 'ERR_HTTP_HEADERS_SENT'
}
我正在使用 msnodesqlv8 进行 sql 操作
【问题讨论】:
-
您似乎发送了两次响应。
-
是的..看起来像。但我似乎不明白在哪里以及如何
标签: javascript sql node.js express