如何正确设置路线



下面是一个示例代码:

    var x = require('./folder/usefile');
    var Auth = passport.authenticate('jwt', { session: false });
    module.exports = function(app){
    console.log('inside function(app)'); //line 1 executed!
    var player = express.Router();
    var finalRun = express.Router();
    app.use('/api/usefile',player);
    player.get('/', Auth, x.login);
    player.post('/post', Auth, function(req, res){
      x.register});
    app.use('/api',finalRun);
console.log('inside api'); //line 2 is executed!
    }

usefile我的登录功能存在并被导出。

我在这里使用护照,其功能存在于此处的单独文件中,仅用于身份验证。

当我为get方法运行 http://localhost:8080/api/usefile/--->时,它显示 404。 post方法相同。

控制台正在打印第 1 行和第 2 行(已在注释中提到(,流程是第 1 行、第 2 行。

谁能帮我找到我在这里犯了什么错误?

您已经创建了两个路由器实例playerfinalRun 。 有两个主要问题:

  1. 这条线player.use('/usefile',player)应该是app.use('/usefile',player)的。 express.Router().use用于为注册到路由器的所有路由添加中间件(在本例中为 player (。例如,如果要将 Passport 中的Auth中间件用于每个player路由,则可以将其声明为 player.use(Auth)
  2. 您没有声明finalRun路由器的任何路由处理。因此,在这种情况下,向 player 注册的路由处理程序将处理host/usefilefinalRun将处理任何host/api

如果您希望向player注册的处理程序处理/api/usefile,使用单个路由器实例会简单得多。

player路由器注册/api/usefile路径,如下所示:

app.use('/api/usefile', player);

app.use文档

router.use文档

最新更新