Error: Can't set headers after they are sent. fix làm sao vậy mọi người ?



  • Error: Can't set headers after they are sent.
    at ServerResponse.OutgoingMessage.setHeader (http_outgoing.js:344:11)
    at ServerResponse.header (C:\Users\TRANG\Desktop\30-8-2016\learn nodeJS\buoi
    7\node_modules\express\lib\response.js:719:10)
    at ServerResponse.location (C:\Users\TRANG\Desktop\30-8-2016\learn nodeJS\bu
    oi7\node_modules\express\lib\response.js:836:15)
    at ServerResponse.redirect (C:\Users\TRANG\Desktop\30-8-2016\learn nodeJS\bu
    oi7\node_modules\express\lib\response.js:874:18)
    at C:\Users\TRANG\Desktop\30-8-2016\learn nodeJS\buoi7\demologin.js:52:15
    at Layer.handle [as handle_request] (C:\Users\TRANG\Desktop\30-8-2016\learn
    nodeJS\buoi7\node_modules\express\lib\router\layer.js:95:5)
    at next (C:\Users\TRANG\Desktop\30-8-2016\learn nodeJS\buoi7\node_modules\ex
    press\lib\router\route.js:131:13)
    at C:\Users\TRANG\Desktop\30-8-2016\learn nodeJS\buoi7\node_modules\body-par
    ser\lib\read.js:129:5
    at invokeCallback (C:\Users\TRANG\Desktop\30-8-2016\learn nodeJS\buoi7\node

    modules\raw-body\index.js:262:16)
    at done (C:\Users\TRANG\Desktop\30-8-2016\learn nodeJS\buoi7\node_modules\ra
    w-body\index.js:251:7)



  • Bạn post thêm về source code của project bạn đang làm lên thì mọi ng mới giúp được.
    Lỗi này thường là do xử lý bất đồng bộ (asynchronous) không đúng dẫn đến tình trạng response.send({}) (hoặc cái nào tương tự thế) bị gọi 2 lần.



  • Trước mình mới tìm hiểu nên cũng dính lỗi này.
    Cách khắc phục đơn giản là dùng return sau mỗi hàm res.send hoặc res.json...
    Hy vọng sẽ giúp được cho bạn :)


Log in to reply