Javascript 我运行此路由时出现状态代码错误
我已经尝试了一个星期,希望能够对MySQL数据库进行修改。我终于让它这么做了,但是我遇到了404错误,程序崩溃了。我做错了什么?下面是代码Javascript 我运行此路由时出现状态代码错误,javascript,node.js,Javascript,Node.js,我已经尝试了一个星期,希望能够对MySQL数据库进行修改。我终于让它这么做了,但是我遇到了404错误,程序崩溃了。我做错了什么?下面是代码 router.post('/edit', (req, res) => { const { user_id = req.params.user_id, timesPD = req.body.timesPD, chkCarbs = req.body.chkCarbs, chkInsulin = req.body.chkI
router.post('/edit', (req, res) => {
const {
user_id = req.params.user_id,
timesPD = req.body.timesPD,
chkCarbs = req.body.chkCarbs,
chkInsulin = req.body.chkInsulin,
typInsulin = req.body.typInsulin,
chkBP = req.body.chkBP
} = req.query;
const sql =
`UPDATE preferences
SET user_id=${user_id}, timesPD=${timesPD}, chkCarbs=${chkCarbs},
chkInsulin=${chkInsulin}, typInsulin=${typInsulin}, chkBP=${chkBP}
WHERE user_id=${user_id};`;
connection.query(sql,
[user_id, timesPD, chkCarbs, chkInsulin, typInsulin, chkBP],
(err, results) => {
if (err) {
return res.send(err.message);
} else {
res.send('Rows affected: ', results.affetedRows);
}
}
);
});
我使用的是节点版本12.14.1,得到的终端错误是
RangeError [ERR_HTTP_INVALID_STATUS_CODE]: Invalid status code: Rows
affected:
[0] at ServerResponse.writeHead (_http_server.js:246:11)
[0] at ServerResponse._implicitHeader (_http_server.js:237:8)
[0] at ServerResponse.end (_http_outgoing.js:720:10)
[0] at ServerResponse.send
(D:\vscode\bgtracker\node_modules\express\lib\response.js:221:10)
[0] at Query.<anonymous>
(D:\vscode\bgtracker\routes\preferences.js:90:13)
[0] at Query.<anonymous>
(D:\vscode\bgtracker\node_modules\mysql\lib\Connection.js:525:10)
[0] at Query._callback
(D:\vscode\bgtracker\node_modules\mysql\lib\Connection.js:491:16)
[0] at Query.Sequence.end
RangeError[ERR\u HTTP\u INVALID\u STATUS\u code]:无效状态代码:行
影响:
[0]位于ServerResponse.writeHead(_http_server.js:246:11)
[0]位于ServerResponse.\u implicitHeader(\u http\u server.js:237:8)
[0]位于ServerResponse.end(_http_outgoing.js:720:10)
[0]位于ServerResponse.send
(D:\vscode\bgtracker\node\u modules\express\lib\response.js:221:10)
[0]在查询时。
(D:\vscode\bgtracker\routes\preferences.js:90:13)
[0]在查询时。
(D:\vscode\bgtracker\node\u modules\mysql\lib\Connection.js:525:10)
[0]在查询时。\u回调
(D:\vscode\bgtracker\node\u modules\mysql\lib\Connection.js:491:16)
[0]位于Query.Sequence.end
(D:\vscode\bgtracker\node\u modules\mysql\lib\protocol\sequences\Sequence.js:83:24)
[0]在查询时。\u handleFinalResultPacket(D:\vscode\bgtracker\node\u modules\mysql\lib\protocol\sequences\Query.js:139:8)
[0]位于Query.OkPacket(D:\vscode\bgtracker\node\u modules\mysql\lib\protocol\sequences\Query.js:72:10){
[0]代码:“ERR\u HTTP\u INVALID\u STATUS\u code”您能提供终端错误输出吗?我认为您的
res.send('受影响的行:',results.affetedRows);
应该使用+
而不是,
。send()的文档没有显示两个参数版本,因此它可能认为您正在尝试发送状态代码“行受影响:”,这是无效的。它很有效,非常感谢