簡體   English   中英

Express 4-如何正確提供其他文件的路由

[英]Express 4 - How to properly serve routes from other files

我簡單的Express 4應用程序讓我心痛。 繼承人的設置:

路線/ profile.js

var express = require('express');
var router = express.Router();

router.get('/profile', function(req, res) {
  res.send('you are looking at a profile');
});

module.exports = router;

./router.js

module.exports.routes = function(app) {
  var index = require('./routes/index');
  var profile = require('./routes/profile')

  app.use('/', index);
  app.use('/profile', profile);
};

並在./app.js中

...
var registerRoutes = require('./router');
...
registerRoutes(app);

現在,當我轉到localhost:3000 ,它可以正常工作,並顯示標准的Express內容。

但是,當我轉到/profile ,會出現404錯誤。

但是,在profile.js中,如果我將router.get('/profile'...更改為router.get('/'...

為什么? 可以嗎? 我的直覺告訴我不。

路由模塊中定義的路徑是相對於到達它們的路徑的。 當您嘗試訪問/profile端點時,express會找到您創建的模塊,然后在該模塊中尋找一個'/'端點。 由於您的處理程序已映射到'/profile' ,因此找不到一個,因此它繼續在app.js中沿鏈向下移動,直到遇到您的404處理程序為止。

TL; DR:您所做的有效更改是快速路由的工作方式。 將模塊內部的端點固定為'/' ,或嘗試導航至/profile/profile

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM