Mysql sequelize findOne在数据库中的usedIf中找不到用户ID
我正在用户中使用node.js/express/sequelize lo登录。我正在测试邮递员的请求,看看有没有结果。我正在测试一个我知道在db中的用户和pw,但是sequelize中的findOne查询返回null,即使测试的名称在db中。以下是有疑问的问题:Mysql sequelize findOne在数据库中的usedIf中找不到用户ID,mysql,node.js,express,sequelize.js,postman,Mysql,Node.js,Express,Sequelize.js,Postman,我正在用户中使用node.js/express/sequelize lo登录。我正在测试邮递员的请求,看看有没有结果。我正在测试一个我知道在db中的用户和pw,但是sequelize中的findOne查询返回null,即使测试的名称在db中。以下是有疑问的问题: let { userId, pw } = req.body try{ const foundUser = await User.findOne({ where: { userId: userId } });
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图像描述实现了body解析器,并且当userId和pwd值到达findOne查询时,路由工作正常。但是,它仍然表示查询后没有结果。终端运行以下用户标识为“slim”
执行默认值:从用户中选择id、username、userId、pw、createdAt、updatedAt作为用户,其中users.userId='slim'
“slim”在Json和db的“userId”部分中都有,问题是因为我的db的userId部分中有不止一个“slim”,这很有趣。当我为userId输入一个真正唯一的值时,它按预期返回了令牌。也许这看起来很明显,但重要的是,该值要求身份验证的唯一性。首先使用findAll,它返回数组如果不是问题,请检查req.body是否返回正确的值我不好,我使用findOne,但在发布此问题之前尝试将其更改为findAll。FindAll返回了一个500错误。我将相应地进行编辑