Express 해결 오류: 그들이 보낸 후에 헤더를 설정할 수 없습니다.

1060 단어 node.js
Error: Can't set headers after they are sent.
문제가 된 것은res.send 메시지가 계속 발송되고 있다는 것이다
해결:
응답을 사용합니다.end () 응답을 보낼 때, 이 전에return, 즉returnresponse를 추가합니다.end (), 유사한response.send () 등 함수도 Return을 추가해야 하고 모든 곳에서 추가해야 합니다. a 요청의 응답이 return을 추가하지 않아도 b 요청이 왔을 때 오류를 보고합니다.
예:
app.use(function (err, req, res, next) {
        return res.status(err.status || 500).send({
            message: err.message,
            error: {},
            title: 'error'
        });
    });
router.post('/login', (req, res) => {
    var sess = req.session;
    var user = findUser(req.body.name, req.body.pwd);
    console.log(user);
    if (user) {
        req.session.regenerate(function(err) {
            if (err) {
                return res.json({ code: 2, msg: ' ' });
            }
            req.session.loginUser = user.name;
            return res.json({ code: 0, msg: ' ' });
        });
    } else {
        return res.json({ code: 1, msg: ' ' });
    }
});

좋은 웹페이지 즐겨찾기