안녕하세요 이제막 자바스크립트와 노드js를 건드리기 시작한 대학생입니다.제가 웹페이지를 혼자 실습삼아서 만들어 보려고 하고있는데, 로그인 페이지 부분에서 이상한 에러가 떠서 질문 드립니다.코드는 app.get('/login', function(req,res) {res.render('login');
});
app.post('/login', function(req, res) {
let user_id = req.body.user_id;
let password = req.body.password;
let sql = 'SELECT user_id, password FROM user';
conn.query(sql, function(err, result) {
if(err) {
console.log(err);
} else {
for(let i=0; i<result.length; i++) {
if(user_id === result[i].user_id && password === result[i].password) {
res.redirect('/topic')
break;
} else {
res.redirect('/login')
}
}
}
});
});코드는 이런식으로 되어있는데요, mysql에있는데로 아이디랑 비밀번호를 치면정상적으로 localhost:3000/topic으로 넘어가 지는데, 틀린(mysql에 없는) 값을 입력하면C:\Users\cics16_043\dev\js\server_side_javascript\node_modules\mysql\lib\protocol\Parser.js:80
throw err; // Rethrow non-MySQL errors
^
Error: Can't set headers after they are sent.
at validateHeader (_http_outgoing.js:491:11)
at ServerResponse.setHeader (_http_outgoing.js:498:3)
at ServerResponse.header (C:\Users\cics16_043\dev\js\server_side_javascript\node_modules\express\lib\response.js:767:10)
at ServerResponse.location (C:\Users\cics16_043\dev\js\server_side_javascript\node_modules\express\lib\response.js:884:15)
at ServerResponse.redirect (C:\Users\cics16_043\dev\js\server_side_javascript\node_modules\express\lib\response.js:922:18)
at Query._callback (C:\Users\cics16_043\dev\js\server_side_javascript\app_mysql.js:33:24)
at Query.Sequence.end (C:\Users\cics16_043\dev\js\server_side_javascript\node_modules\mysql\lib\protocol\sequences\Sequence.js:88:24)
at Query._handleFinalResultPacket (C:\Users\cics16_043\dev\js\server_side_javascript\node_modules\mysql\lib\protocol\sequences\Query.js:139:8)
at Query.EofPacket (C:\Users\cics16_043\dev\js\server_side_javascript\node_modules\mysql\lib\protocol\sequences\Query.js:123:8)
at Protocol._parsePacket (C:\Users\cics16_043\dev\js\server_side_javascript\node_modules\mysql\lib\protocol\Protocol.js:279:23)이런 에러가 뜨면서 서버가 꺼집니다.왜 오류가 뜨는지도 모르겠고 서버가 왜꺼지는 지도 모르겠습니다. 형님들 도와주세요