2014-07-17 5 views
-1

나는 node.js로 초보자입니다!.ejs 페이지에서 json 응답 처리하기 node.js

.ejs 페이지에서 json 응답을 처리 할 수 ​​없습니다. 그 때 사용자가 잘못된 세부 정보로 로그인을 시도하면 같은 페이지를 렌더링하고 JSON 응답을 보내고이 보낸 응답이 null이 아닌지 확인한 다음 경고 또는 "알 수없는 세부 정보"와 같은 것을 표시합니다.

res.redirect('login', { LoginInvalid: "LoginInvalid" }); 

사용하여 페이지 -

<script> 
    if(JSON.stringify(<%-LoginInvalid%>)!=null){ 
    console.log('invalid details'); 
    } 
</script> 

에 응답 그러나이 스크립트가 실행되지 않습니다 페이지 날이 작은 문제를 해결 GUID를 바랍니다 LoginInvalid is not defined

으로 나에게 참조 오류를 보여줍니다.

답변

0

res.redirect() (자세한 내용은 http://expressjs.com/api.html#res.redirect을 읽으십시오)을 사용하는 경우 변수를 ejs 템플릿에 전달할 수 없습니다. 당신이 몇 가지 변수를 전달하려는 경우, 유일한 방법은이

res.redirect('login?LoginInvalid=LoginInvalid'); 

처럼 GET 쿼리 문자열을 사용하여 로그인 컨트롤러에서 LoginInvalid 쿼리 문자열을 구문 분석하는 것입니다.

-1

express-flash 모듈과 함께 플래시 메시지를 사용할 수 있습니다.

경로에서 다음
var flash = require('express-flash'); 

app.use(flash()); 

,

req.flash('login', { LoginInvalid: "LoginInvalid" }); 
res.redirect('/login'); 

그리고보기에

,

<% if (messages.login.LoginInvalid) { %> 
    <%= messages.login.LoginInvalid 
<% } %>