2016-06-11 177 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返回undefined? 当if语句错误时,为什么else块不运行?

回答

1

看什么key值居然是:

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

谢谢,它的工作原理。但为什么当我输入错误的数据页面是无限加载,否则块不运行? –