【发布时间】:2021-07-27 08:45:21
【问题描述】:
我正在尝试通过 Postman 测试通过快递完成的路线,但尽管我有另一条可行的路线,但我一直收到状态 404。
我不会将代码发布到可以工作的路线上,因为这里写了很多代码并且似乎没有必要。
App.js
var createError = require("http-errors");
var express = require("express");
var path = require("path");
var cookieParser = require("cookie-parser");
var logger = require("morgan");
var cors = require("cors");
require("dotenv").config();
var bodyparser = require("body-parser")
var indexRouter = require("./routes/index");
var usersRouter = require("./routes/users");
var commentsRouter = require("./routes/comments")
var authRouter = require("./routes/auth")
var app = express();
var corsOption = {
origin: true,
methods: 'GET,HEAD,PUT,PATCH,POST,DELETE',
credentials: true,
exposedHeaders: ['x-auth-token']
};
// view engine setup
app.use(cors(corsOption));
app.use(logger("dev"));
app.use(express.json());
app.use(express.urlencoded({ extended: false }));
app.use(cookieParser());
app.use(express.static(path.join(__dirname, "public")));
app.use(bodyparser.json());
app.use(bodyparser.urlencoded({ extended: false }));
app.use(function (req, res, next) {
if (req.originalUrl && req.originalUrl.split("/").pop() === "favicon.ico") {
return res.sendStatus(204);
}
return next();
});
app.use("/", indexRouter);
app.use("/users", usersRouter);
app.use("/comments", commentsRouter)
app.use("/auth", authRouter)
// catch 404 and forward to error handler
app.use(function (req, res, next) {
next(createError(404));
});
// error handler
app.use(function (err, req, res, next) {
// set locals, only providing error in development
res.locals.message = err.message;
res.locals.error = req.app.get("env") === "development" ? err : {};
// render the error page
res.status(err.status || 500);
res.render("error");
});
module.exports = app;
评论路线
var express = require("express");
var router = express.Router();
//Get comment
router.get("/", function (req, res, next) {
return res.status(200)
} )
/* Post new comment. */
router.post("/new", function (req, res, next) {
return res.status(200)
});
//Update comments
router.put("/update", function (req, res, next) {
})
module.exports = router;
索引/路由运行良好,但 /auth 和 /cmets 却不行。
我正在尝试使用 GET 访问 http://localhost:3000/cmets
【问题讨论】:
-
你做了什么调试?如果你在你的 cmets
router.get("/", ...)里面放了一个console.log(),它会记录吗?你的app.use(function (req, res, next) { ...});记录了吗?这是基本调试,用于查看请求在哪里处理或未在哪里处理。您还可以打开 Express 路由调试,查看 Express 对请求的具体操作。 -
仅供参考,此处描述了您自己诊断此问题的快速路由调试:expressjs.com/en/guide/debugging.html。
标签: javascript node.js express postman router