首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >路由继续返回404,而不是在Express.JS中显示索引、用户和错误以外的其他视图。

路由继续返回404,而不是在Express.JS中显示索引、用户和错误以外的其他视图。
EN

Stack Overflow用户
提问于 2022-10-23 21:10:10
回答 1查看 19关注 0票数 0

我正在用快递生成器在Express.JS上建立一个站点,但在路由过程中遇到了麻烦。目前,每当向设置的另一条路由("/hook")发送GET请求时,我都会收到"error“视图和404消息。目前,正在工作的两条路由是"/“,它指向"index”,而"/users“则响应消息。我想知道为什么我要得到这个错误,因为其他工作。

下面是app.js文件:

代码语言:javascript
复制
var createError = require("http-errors");
var express = require("express");
var path = require("path");
var cookieParser = require("cookie-parser");
var logger = require("morgan");

var indexRouter = require("./routes/index");
var usersRouter = require("./routes/users");
var hookRouter = require("./routes/hook");

var app = express();

// view engine setup
app.set("views", path.join(__dirname, "views"));
app.set("view engine", "ejs");

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("/", indexRouter);
app.use("/users", usersRouter);
app.use("/hook", hookRouter);

// 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;

这是索引路由器

代码语言:javascript
复制
var express = require('express');
var router = express.Router();

/* GET home page. */
router.get('/', function(req, res, next) {
  res.render('index', { title: 'Express' });
});

module.exports = router;

下面是钩子路由器:

代码语言:javascript
复制
var express = require("express");
var router = express.Router();

/* GET hook page. */
router.get("/hook", function (req, res) {
  res.send("Hook Page Works");
});

module.exports = router;

请让我知道有更多的信息我可以提供。谢谢!

EN

回答 1

Stack Overflow用户

发布于 2022-10-23 21:17:03

钩子路由器需要:

代码语言:javascript
复制
/* GET hook page. */
router.get("/", function (req, res) {
  res.send("Hook Page Works");
});

这是:

代码语言:javascript
复制
app.use("/hook", hookRouter);

已经使用了路径的/hook部分,所以在路由器中,您只需要/

你最初的组合:

代码语言:javascript
复制
app.use("/hook", hookRouter);

router.get("/hook", ...);

将响应URL /hook/hook

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74174823

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档