2016-06-11 3 views
0

로그인 창을 만들려고합니다. 내 코드는 간단합니다.Node.js 정의되지 않은 속성

var employees = { 
 
\t '1' : { 
 
\t \t firstName: '', 
 
\t \t lastName: '', 
 
\t \t login: 'qwerty', 
 
\t \t password: '12345', 
 
\t }, 
 
\t '2' : { 
 
\t \t login: 'asdfg', 
 
\t \t password: '12345', 
 
\t }, 
 
}; 
 

 
app.post('/main', function(req, res) { 
 
\t if (!req.body) return res.sendStatus(400); 
 
\t \t console.log(req.body); 
 
\t for (var key in employees) { 
 
\t \t console.log(key['login']); 
 
\t \t console.log(key['password']); 
 
\t \t if ((key.login == req.body.login) && (key.password == req.body.password)) { 
 
\t \t \t \t res.render('main'); 
 
\t \t } else { 
 
\t \t \t app.get('/', function(req,res) { 
 
\t \t \t \t res.send(createIndexPage()); 
 
\t \t \t }); 
 
\t \t }; 
 
\t }; 
 
});

왜 key.login 및 정의되지 않은 반환 key.password? 그리고 문장이 잘못되었을 때 블록이 실행되지 않는 이유는 무엇입니까? key의 값이 실제로 무엇인지에

답변

1

봐 : 속성의

var employees = { 
 
    '1': { 
 
    firstName: '', 
 
    lastName: '', 
 
    login: 'qwerty', 
 
    password: '12345', 
 
    }, 
 
    '2': { 
 
    login: 'asdfg', 
 
    password: '12345', 
 
    }, 
 
}; 
 

 
for (var key in employees) { 
 
    console.log(key); 
 
}

그것은 (문자열 등) 속성 이름입니다 값이 아닌.

console.log(employees[key]['login']); 당신이 찾고있는 것을 줄 것입니다.

+0

고맙습니다. 작동합니다. 하지만 왜 내가 잘못 입력하면 데이터 페이지가 무한히로드되고 블록이 실행되지 않습니까? –