首页 > 解决方案 > axios.get 没有在 nodeJS Express 中返回任何内容

问题描述

我对 .get 请求有疑问。不知何故,它没有返回任何东西?有什么建议么?

GET http://localhost:8080/admin net::ERR_CONNECTION_REFUSED

获取路线,我试图通过他们的用户名过滤所有项目:

   app.get("/:username", verify, (req, res) => {
  console.log("Welcome to roffys server");
  Todo.find({ username: req.params.username }).then((err, todo) => {
    if (err) {
      console.log("Error retrieving todos");
    } else {
      res.json(todo);
    }
  });
});

验证功能,在这里我正在验证我的身份验证令牌,我在控制台记录了它并且它工作正常:

    const jwt = require("jsonwebtoken");
module.exports = function (req, res, next) {
  const token = req.header("auth-token");
  console.log("-----token", token);
  if (!token) return res.status(401).send("Access Denied");
  try {
    const verified = jwt.verify(token, "secretkey");
    req.user = verified;
  } catch (err) {
    res.status(400).send("Invalid token");
    next();
  }
};

FE 端与 ReactJS :

 componentDidMount() {
const { getAll, setPageCount } = this.props.actions;
axios
  .get(`http://localhost:8080/${localStorage.getItem("username")}`, {
    headers: {
      "auth-token": localStorage.getItem("auth-token"),
    },
  })
  .then((res) => {
    getAll(res.data);
    setPageCount();
    console.log("--------res.data", res.data);
  })
  .catch((err) => {
    console.log("err", err);
  });
  }

标签: node.jsreactjsexpress

解决方案


您没有响应或调用next您的身份验证中间件。添加next()到中间件,以便请求转到下一个中​​间件或仅在那里响应。

module.exports = function (req, res, next) {
  const token = req.header("auth-token");
  console.log("-----token", token);
  if (!token) return res.status(401).send("Access Denied");
  try {
    const verified = jwt.verify(token, "secretkey");
    req.user = verified;

    //call next or respond
    next()

  } catch (err) {
    res.status(400).send("Invalid token");
    next();
  }
};

希望这可以帮助 !


推荐阅读