隐藏用户y 2024-07-27 15:52 采纳率: 64.9%
浏览 2
已结题

登录接口测试状态码500具体解决方案

关于博客项目的登录接口测试总是状态码500
附上终端截图和代码片段

var express = require('express');
var router = express.Router();
// 引入数据库设计模型
let { } = require('../models/index');
// 登录请求
let jwt = require("jsonwebtoken");
router.get("/", function (req, res, next) {
  console.log(req.query);
  let { username, password } = req.query;
  // 若有此用户存在
  User.findOne({ username, password }).then((r) => {
    console.log(r);
  });
  //如果登录成功,返回jwt,并且在token中存入用户名
  if (req.query.username == "lisa" && req.query.password == "123456") {
    let token = jwt.sign({ username: "zhangsan" }, "tianxiadiyiwudi666", {
      expiresIn: '360s',
      algorithm: "HS256",
    });
    res.json({
      code: 1,
      msg: '登录成功 ',
      token,
    });
  } else {
    res.json({
      code: 0,
      msg: '登录失败',
    });
  }
});
module.exports = router;

img

  • 写回答

1条回答 默认 最新

  • 专家-司宇[在线] 2024-07-27 15:53
    关注

    引自免费微信小程序:皆我百晓生

    从你提供的代码和错误信息来看,问题出现在User这个变量没有被正确定义。你在代码中尝试使用User.findOne来查询数据库,但User并没有被导入或者定义。

    为了解决这个问题,你需要确保你已经正确导入了User模型。你应该在代码的开头部分导入它,就像这样:

    var express = require('express');
    var router = express.Router();
    // 引入数据库设计模型
    const User = require('../models/user'); // 确保你的user模型文件是存在的,并且导出的是一个模型对象
    // 登录请求
    let jwt = require("jsonwebtoken");
    

    在修复这个问题之后,你的代码应该可以正常运行。当然,还需要确保你的数据库连接是正确的,并且你的数据库中确实有与查询条件匹配的记录。

    另外,关于代码中的登录逻辑部分,我建议你做一些改进:

    1. 在真实环境中,不应该硬编码用户名和密码(如代码中的 req.query.username == "lisa" && req.query.password == "123456")。应该通过查询参数或请求体获取用户输入,并与数据库中的记录进行比较。
    2. 使用async/await可以使异步代码更易读和维护。例如:
    router.get("/", async (req, res) => {
      const user = await User.findOne({ username: req.query.username, password: req.query.password });
      if (user) {
        let token = jwt.sign({ username: user.username }, "tianxiadiyiwudi666", {
          expiresIn: '360s',
          algorithm: "HS256",
        });
        res.json({
          code: 1,
          msg: '登录成功 ',
          token,
        });
      } else {
        res.json({
          code: 0,
          msg: '登录失败',
        });
      }
    });
    

    注意,以上的建议假设你的User模型有一个username字段。如果不是这样,你需要根据实际情况进行调整。希望这些建议对你有所帮助!如果你还有其他问题或需要进一步的帮助,请随时提问。

    评论 编辑记录

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 7月29日
  • 创建了问题 7月27日

悬赏问题

  • ¥15 winFrom界面无法打开
  • ¥15 crossover21 ARM64版本安装软件问题
  • ¥15 mymetaobjecthandler没有进入
  • ¥15 mmo能不能做客户端怪物
  • ¥15 osm下载到arcgis出错
  • ¥15 Dell g15 每次打开eiq portal后3分钟内自动退出
  • ¥200 使用python编写程序,采用socket方式获取网页实时刷新的数据,能定时print()出来就行。
  • ¥15 matlab如何根据图片中的公式绘制e和v的曲线图
  • ¥15 我想用Python(Django)+Vue搭建一个用户登录界面,但是在运行npm run serve时报错了如何解决?
  • ¥15 QQ邮箱过期怎么恢复?