[usedIf在数据库中时,sequelize findOne找不到用户标识
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[usedIf在数据库中时,sequelize findOne找不到用户标识相关的知识,希望对你有一定的参考价值。
我正在使用node.js / express / sequelize用户登录。我正在测试在邮递员中发出的请求,以查看是否得到任何东西。我正在测试一个我知道在数据库中的用户和密码,但是即使测试名称在数据库中,我在sequelize中的findOne查询也返回null。这是有问题的查询:
let { userId, pw } = req.body
try{
const foundUser = await User.findOne({ where: { userId: userId } });
if (foundUser === null) {
return res.status(401).send({ auth: false, token: null,error: 'name not found' });
} else {
const passwordIsValid = bcrypt.compareSync(pw, foundUser.pw);
if (!passwordIsValid) return res.status(401).send({ auth: false, token: null,error: 'name not found' });
const token = jwt.sign({ id: foundUser.id}, config.secret, {
expiresIn: 86400 // expires in 24 hours
});
res.status(200).json({auth:true,token:token});
}
} catch (err) {
res.status(500).json(err);
}
}
我已经在索引js上实现了用于jsonenter图像描述的正文解析器,并且路由的工作方式是userId和pwd值使其进入findOne查询。但是它仍然说查询之后没有结果。终端运行以下命令(userId为'slim')
正在执行(默认):从id
中选择username
,userId
,pw
,createdAt
,updatedAt
,users
作为users
,在users
中。userId
='slim ';
'slim'既在Json中,又在数据库的'userId'部分中]]
我正在使用node.js / express / sequelize用户登录。我正在测试在邮递员中发出的请求,以查看是否得到任何东西。我正在测试我知道在数据库中的用户和密码,但是我的findOne查询...
事实证明,这是因为我的数据库的userId部分中存在多个'slim',它表现得很滑稽。当我为userId输入一个真正唯一的值时,它按预期返回了令牌。也许看起来很明显,但重要的是该值要求唯一身份验证。
以上是关于[usedIf在数据库中时,sequelize findOne找不到用户标识的主要内容,如果未能解决你的问题,请参考以下文章
无法通过 Node.js 中的 Sequelize 从 DB 中选择数据
Sequelize - 如何提取具有 1 个关联记录的记录并按关联记录属性排序