当前位置: 首页 > 工具软件 > TARE > 使用案例 >

Nodejs Error: Can't set headers after they are sent错误解决

汝彭薄
2023-12-01

一、问题说明

        在请求时 ,出现这种问题,一定是因为,浏览器请求一次之后,服务器却返回两次及两次以上的响应。

这种容易发生在异步回调中:

Movie.fetch(function (err,movies) {
    if(err) {
       res.redirect('/')
    } 
       
        res.render('index',{
            title:'首页',
            movies:movies
        });
   
});
       如果fetch抛出错误,服务器返回重定向的响应,但是后面又再一次返回另一个响应。此时将出现:

 Error: Can't set headers after they are sent


 二、解决方案

        在每次的请求处理中,一旦服务器返回响应,就即使的使用return,避免出现一次请求后,返回两次响应。

Movie.fetch(function (err,movies) {
    if(err) {
       return res.redirect('/')
    } 
       
        res.render('index',{
            title:'首页',
            movies:movies
        });
   
});

 类似资料: