未找到外部文件404中的NodeJS Express路由

我是NodeJ的新手,并表示。我的目标是要有一个单独的路由文件,其中包含我的所有应用程序路由。因此,我创建了一个名为routes.js的文件。内容如下:

const express = require('express');

const router = express.Router();

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

module.exports = router;

在我的主文件中,我需要带有此行的文件。 app变量包含我的快速实例。

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

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

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

zhuyanjunhunan 回答:未找到外部文件404中的NodeJS Express路由

您想将app传递到路由文件中。一个好的方法是将您的路线导入到主文件中,例如const routes = require('./routes');

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

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

通过这种方式,您可以在主文件中执行routes(app,router),并可以访问app内部的routerroutes.js

,

传统上,我要做的是将Express实例传递到您的路由模块中:

一旦我实例化了名为app的快递实例

app.js

require('./routes.js')(app);

routes.js,其中registerUser是我们在匹配路由时要调用的函数

module.exports = (app) => {
   app.route('/auth/register')
    .post(registerUser);
}
本文链接:https://www.f2er.com/3114260.html

大家都在问