node.js - 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);
});
}
解决方案
您没有响应或调用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();
}
};
希望这可以帮助 !
推荐阅读
- javascript - Node.js + Express,它可以用单个 cpu 核心处理并行请求吗?
- javascript - 如何在 Facebook 聊天机器人快速回复中删除空格或设置宽度
- javascript - 如何格式化 JSON 对象数组(Javascript)
- javascript - 无论如何要清理这个 SQL/JS 吗?
- javascript - 脚本 src 的 HTML 相对路径问题
- c# - 在 LINQ for EF 中保存具有链接属性的新实体时不创建新实例
- java - 尝试获取签名的 apk 时,Android Studio 上出现“块长度为负”错误
- php - 从文本文档中获取数据
- odbc - SQLExecDirect 和 SQLExecute 上的 ODBC ARD 和 APD 管理
- corda - Yo CorDapp 不针对 4.0-SNAPSHOT 运行