Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql sequelize findOne在数据库中的usedIf中找不到用户ID_Mysql_Node.js_Express_Sequelize.js_Postman - Fatal编程技术网

Mysql sequelize findOne在数据库中的usedIf中找不到用户ID

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 } });

我正在用户中使用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 } });
    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错误。我将相应地进行编辑