【问题标题】:findOneAndUpdate mongoose; Cannot set headers after they are sent to the clientfindOneAndUpdate 猫鼬;发送到客户端后无法设置标头
【发布时间】:2019-10-06 04:12:38
【问题描述】:

创建记录后,我尝试使用 $push 将刚刚创建的记录的 ID 发送到不同的模型中。

likeRoutes.route('/add').post(function(req, res){
    let like = new Like({
        value: req.body.value,
        _report: req.body._report
    })
    like.save((err, doc) => {
        if (err)
            res.send(err)
            console.log('in router - card id', req.body._report)
            console.log('doc id', doc)
        Report.findOneAndUpdate({ _id: req.body._report },
            { $push: { like: doc._id } },
            { new: true , useFindAndModify: false },
            (err, post) => {
                if (err)
                    res.send(err)
                    res.json({doc})
            }
        )
    })
})

当我运行这个时,我不断收到Error [ERR_HTTP_HEADERS_SENT]: Cannot set headers after they are sent to the client 的错误

我之前是这样配置的:

Report.findOneAndUpdate({ _id: req.body._report },

而且每次都是在同一份报告中添加like记录,并没有按ID查找。

【问题讨论】:

    标签: node.js mongodb express mongoose


    【解决方案1】:

    您不能一个接一个地呼叫res.sendres.json

    试试这个:

    likeRoutes.route('/add').post(function(req, res){
        let like = new Like({
            value: req.body.value,
            _report: req.body._report
        })
        like.save((err, doc) => {
            if (err) return res.send(err)
    
            console.log('in router - card id', req.body._report);
            console.log('doc id', doc);
    
            Report.findOneAndUpdate({ _id: req.body._report },
                { $push: { like: doc._id } },
                { new: true , useFindAndModify: false },
                (err, post) => {
                    if (err) return res.send(err);
    
                    res.json({doc})
                }
            )
        })
    })
    

    现在,如果出现错误,您将停止执行并返回错误。如果没有错误 - 您正在发送结果。

    【讨论】:

      猜你喜欢
      • 2021-09-11
      • 2018-05-25
      • 2021-06-27
      • 2021-06-18
      • 2020-11-14
      • 2020-09-05
      • 2019-02-06
      • 2020-05-20
      相关资源
      最近更新 更多