2017-12-16 15 views
0

좋아요, 그래서 저는 현재 EJS에서 특정 유형의 메시지를 어떻게 보여줄지 고민하고 있습니다. 지금 작동 중입니다. 작동하는 기기는 다음과 같습니다.맞춤 플래시 메시지를 사용하여이를 호출합니다. (Nodejs)

let sql = 'SELECT * FROM users WHERE username = ?'; 
    db.query(sql, [username], function(err, rows) { 
     if (err) 
     return done(err); 
     if (!rows.length) { 
     return done(null, false, { 
      type: 'loginMessage', 
      message: 'Login', 
     }); 
     } 

     // Match Password 
     bcrypt.compare(password, rows[0].password, function(err, isMatch) { 
     if (err) 
      return done(err); 
     if (isMatch) { 
      return done(null, rows[0]); 
     } else { 
      return done(null, false, { 
      type: 'loginMessage', 
      message: 'Wrong Login', 
      }); 
     } 
     }); 
    }); 
    })); 

그게 메시지의 출처입니다. 그러나 한 번에 한 가지 유형의 렌더링 문제가 있습니다.

<%- messages('msg_temp', locals) %> 

내가 어떻게하는지, 모든 유형을 보여줍니다. 위의 두 가지를 갖고 싶습니다. 하나는 로그인이고 다른 하나는 로그인 유형으로 'loginMessage'이고, 등록 유형으로는 'regMessage'입니다.

당신이 itll는 로그인 위의 메시지를 표시 등록하려고하면 정확히 내가 뭘하려는거야, 당신은 https://playkog.net

에 갈 수 있습니다보고 싶어입니다. (등).

+0

노드 코드는 어디에 있습니까? 당신의 ejs 코드는 어디에 있습니까 ?? – Elad

+0

OP에 추가되었습니다. messages.loginMessage가 함수가 아니라는 것을 이해합니다. – William

+0

당신의 코드가'PHP'가 아니지만, 웹 페이지 _ 문제 내에서 그러한 _database를 쿼리 할 수있는 누군가를 위해 태그를 추가했습니다. –

답변

0

좋아, 그래서 나는 내 대답을 반쯤 알았다. 내 메시지에 대한 유형을 넣을 수있었습니다. 이 코드 사용 :

bcrypt.compare(password, rows[0].password, function(err, isMatch) { 
    if (err) 
     return done(err); 
    if (isMatch) { 
     return done(null, rows[0]); 
    } else { 
     return done(null, false, { 
     type: 'loginMessage', 
     message: 'Wrong Pass', 
     }); 
    } 

그러나 동일한 페이지의 메시지에서 특정 유형을 호출하는 방법을 여전히 잘 모릅니다. 내 프론트 페이지에 로그인 및 등록 양식이 있습니다. 따라서 'LoginMessage'을 로그인 양식 위에 표시하고 'regMessage'을 등록 양식 위에 표시하고 싶습니다. 두 가지 코드를 사용하면 오류가 발생하므로 다른 유형의 코드에서 이러한 유형을 표시하는 방법을 모르겠다. 함수