我有以下代码:
exports.dashboardUpdateNote = async (req, res, next) => {
var updateNote = {
"title": req.body.title,
"body": req.body.body1,
}
await Note.findOneAndUpdate({ _id: req.body.note_id }, { $set: updateNote })
.then((Successful) => {
console.log('Successful: ', Successful)
})
return res.redirect('/dashboard')
}
它已重定向,但未发生更改(更新). 然后,我在代码中进行了以下更改(添加:{upsert:true}):
exports.dashboardUpdateNote = async (req, res, next) => {
var updateNote = {
"title": req.body.title,
"body": req.body.body1,
}
await Note.findOneAndUpdate({ _id: req.body.note_id }, { $set: updateNote }, { upsert: true })
.then((Successful) => {
console.log('Successful: ', Successful)
})
return res.redirect('/dashboard')
}
它重定向并发生了更改(更新),但当我单击我已更新的(备注)以查看它时,它给出了这个错误:
Error [ERR_HTTP_HEADERS_SENT]: Cannot set headers after they are sent to the client
at new NodeError (node:internal/errors:399:5)
at ServerResponse.setHeader (node:_http_outgoing:644:11)
at ServerResponse.header (C:\Users\hp\NODE\Notes\node_modules\express\lib\response.js:794:10)
at ServerResponse.contentType (C:\Users\hp\NODE\Notes\node_modules\express\lib\response.js:624:15)
at ServerResponse.send (C:\Users\hp\NODE\Notes\node_modules\express\lib\response.js:149:14)
at done (C:\Users\hp\NODE\Notes\node_modules\express\lib\response.js:1035:10)
at tryHandleCache (C:\Users\hp\NODE\Notes\node_modules\ejs\lib\ejs.js:280:5)
at exports.renderFile [as engine] (C:\Users\hp\NODE\Notes\node_modules\ejs\lib\ejs.js:491:10)
at View.render (C:\Users\hp\NODE\Notes\node_modules\express\lib\view.js:135:8)
at tryRender (C:\Users\hp\NODE\Notes\node_modules\express\lib\application.js:657:10)
但是当我点击一个我从来没有更新过的笔记来查看它时,没有错误发生,笔记出现了. (我忘了写,必须更新的注释实际上没有更新,它添加了另一个新注释,所以每次更新后注释都会增加一个. )