Express Routes路由不生效,访问/api/users报Cannot GET错误如何解决?
问题原因
- 你在
server.js中注册路由时,路由前缀缺少前置斜杠/,Express 无法正确匹配请求路径 - 你本地服务默认是HTTP协议,用HTTPS发起请求也会导致访问异常
export default是ES模块语法,你的项目当前用的是Node默认的CommonJS模块规范,混用会直接报错
修复方案
- 修改
server.js中的路由注册代码,给所有路由前缀加上前置斜杠/:
// 修复前 // app.use("api/users", userRoute); // app.use("api/auth", require("./routes/api/auth")); // app.use("api/profile", require("./routes/api/profile")); // app.use("api/posts", require("./routes/api/posts")); // 修复后 app.use("/api/users", userRoute); app.use("/api/auth", require("./routes/api/auth")); app.use("/api/profile", require("./routes/api/profile")); app.use("/api/posts", require("./routes/api/posts"));
- 不要修改
users.js的导出语法,保持module.exports = router即可,和require导入语法匹配 - 重启Node服务后,用HTTP协议发起请求:
GET http://localhost:3000/api/users,即可正常收到User Route返回结果
内容的提问来源于stack exchange,提问作者Adam Hiatt
相关产品推荐
相关产品推荐

