[英]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.