노드 JS를 처음 사용합니다. 나는 그것을 익스프레스와 여권으로 사용하고있다. 나는 또한 DB에서 현재 사용자를 추적하고있다.노드 J가 제대로 작동하지 않는 경우 리디렉션
목표는 다른 데이터에 액세스 할 수 없게하는 것입니다. 다른 데이터에 액세스하려고하면 올바른 데이터 페이지로 리디렉션되고 connect-flash의 메시지가 프롬프트됩니다.
이 대부분의 시간을 작동app.get('/data/:dataPlace', isLoggedIn, function(req, res) {
if (req.user.dataPlace == req.params.dataPlace) {
res.render('data.ejs', {
user : req.user,
message: req.flash('dataDisplayMessage')
});
}
else {
req.flash('dataDisplayMessage', 'OOOPS!');
res.redirect('/data/' + req.user.dataPlace);
}
});
(심지어 크롬 프리 페치 된 데이터) :
GET /data/asdasd 302 1.049 ms - 86
GET /data/user 200 1.129 ms - 1639
그러나, 내가 좋아하는 뭔가를 얻을 것이다 드문 경우에 여기에
코드입니다 이 :GET /data/asdasd 302 1.108 ms - 86
GET /data/asdasd 302 1.989 ms - 86
GET /data/user 200 2.769 ms - 1646
첫 번째 GET 요청이 발생했습니다. 크롬 프리 페치 데이터. 이전 시간처럼 '사용자'로 즉시 리다이렉트하는 대신, 'asdasd'에 대한 또 다른 GET 요청을 발생시킨 다음 'user'로 리디렉션됩니다.
이렇게하면 메시지가 두 번 표시됩니다! 내가 올바른 방법을 사용하고 있습니까? 메시지를 두 번 표시하는 이유는 무엇입니까? 어떤 제안이라도 대단히 감사하겠습니다!
이 다른 브라우저에서이 작업을 수행 하는가 : 플래시가 한 번 EJS 파일에 수정 된
코드를 검색 한 모든 메시지를 제거대로 표시하는 여러 오류 메시지가 경우에 적합하지 않을 것 ? 크롬 문제일까요? Chrome의 프리 페치에 문제가 있음을 알았습니다. 문제는 아니지만 개발 중일 때 예기치 않은 요청으로 인해 문제를 찾으려고 혼란이 생길 수 있습니다. – Kryten
@Kryten 사파리로 시험해 보았는데 같은 결과를 재현하지 못했습니다 ... 해결 방법이 없다면 매우 슬플 것입니다. – Zack