안녕하세요 제가 로그인 기능 구현 중 로그인 정보가 맞으면 쿠키를 발급하고 redirect를 이용하여 로그인 성공시 화면으로 이동 시키려고 합니다. 그런데 어째서 인지 몰라도 서버에서 오류가 떠버립니다. 코드와 오류는 아래와 같이 작성했습니다.
login.js
const router = require('express').Router();
const schema = require('../config/schema/sign_upSchema.js');
const path = require('path');
router.get('/',function(req,res){
res.render(path.join('../views/login.ejs'));
});
router.post('/send_info',function(req,res){
schema.Sign_in(req.body,function(err,result){
if( err ) return err;
if( result === false ){
return res.status(400).json({ message: '로그인 실패', status : 400 })
}
else{
res.cookie( 'key', result, {
httpOnly:true,
} );
res.redirect('/');
return res.status(200).json({ message: '로그인 성공', status : 200 });
}
})
});
module.exports = router;
오류 메세지
node:_http_outgoing:574
throw new ERR_HTTP_HEADERS_SENT('set');
^
Error [ERR_HTTP_HEADERS_SENT]: Cannot set headers after they are sent to the client
at new NodeError (node:internal/errors:363:5)
at ServerResponse.setHeader (node:_http_outgoing:574:11)
at ServerResponse.header (C:\Users\canky\OneDrive\바탕 화면\개인프로젝트\trial\node_modules\express\lib\response.js:771:10)
at ServerResponse.send (C:\Users\canky\OneDrive\바탕 화면\개인프로젝트\trial\node_modules\express\lib\response.js:170:12)
at ServerResponse.json (C:\Users\canky\OneDrive\바탕 화면\개인프로젝트\trial\node_modules\express\lib\response.js:267:15)
at C:\Users\canky\OneDrive\바탕 화면\개인프로젝트\trial\router\login.js:20:30
at PBKDF2Job.<anonymous> (C:\Users\canky\OneDrive\바탕 화면\개인프로젝트\trial\config\schema\sign_upSchema.js:75:13)
at PBKDF2Job.job.ondone (node:internal/crypto/pbkdf2:58:14) {
code: 'ERR_HTTP_HEADERS_SENT'
}
[nodemon] app crashed - waiting for file changes before starting...