【发布时间】:2021-12-31 22:21:28
【问题描述】:
我试图从这个用户虚拟数组中找到输入电子邮件和密码的用户,但我在返回值中未定义,因此我无法登录。如果我在控制台中运行此代码,它会获取正确的输出。有人能帮忙解释一下为什么这个 find 函数(在 post req 中)在 Node 中不起作用吗?
虚拟数组-
const users = [
{ id: 1, name: 'Sherry', email:'sherry@gmail.com', password: 1234 },
{ id: 2, name: 'harry', email:'harry@gmail.com', password: 1234 },
{ id: 3, name: 'cherry', email:'cherry@gmail.com', password: 1234 }
]
获取请求 -
app.get('/login', (req, res) => {
res.send(`<form method='POST' action='/login'>
<input type="email" name="email" placeholder="Enter email" />
<input type="password" name="password" placeholder="Enter pass" />
<input type="submit" />
</form>`);
})
发布请求 -
app.post('/login', (req,res) => {
const { email, password } = req.body;
console.log(email)
console.log(password)
console.log(users)
let user1 = users.find((user) => user.email === email && user.password === password);
console.log(user1);
if(user1) {
req.session.userId = user.id
return res.redirect('/home')
}
res.redirect('/')
})
问题 - 用户 1 未定义。
【问题讨论】:
标签: node.js express session-cookies