首页 > 解决方案 > 外部文件 404 Not Found 中的 NodeJS Express 路由

问题描述

我是 NodeJs 和 express 的新手。我的目标是拥有一个单独的路由文件,其中包含我所有的应用程序路由。所以我创建了一个名为routes.js. 内容如下所示:

const express = require('express');

const router = express.Router();

router.get('auth/register', require('./controllers/auth/register'));

module.exports = router;

在我的主文件中,我需要带有这一行的文件。该app变量包含我的 express 实例。

app.use('/', require('./routes'));

如果我http://localhost/auth/register在浏览器中调用,我总是会遇到404 Not Found错误。当我直接在主文件中定义路由时,app.get('/auth/register', require('./controllers/auth/register'));它运行良好。我的控制台中没有错误。

有谁知道为什么我的单独路由文件不起作用?谢谢您的帮助!

标签: node.jsexpressnodejs-server

解决方案


您想传递app到您的路线文件中。一个很好的模式是在你的主文件中导入你的路线,比如const routes = require('./routes');

在路线中,您可以像这样定义所有路线:

module.exports = (app, router) => {
  router.route("/").get()
  router.route("/something_else").post()
  app.use("/api", router)
  ...
};

这样,在您的主文件中,您可以:routes(app, router)并且可以访问approuter在您的routes.js.


推荐阅读