Node.js未定义的属性

时间:2016-06-11 14:29:13

标签: javascript node.js

我正在尝试创建一个登录窗口。我的代码很简单。

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

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

为什么key.login和key.password会返回undefined? 当if语句错误时,为什么else块不会运行?

1 个答案:

答案 0 :(得分: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']);会为您提供所需内容。