[英]Express routing on root "/" doesn't work in app.get
我一直遇到這個問題,由於某種原因,Express 路由沒有看到我的 root get 函數。 我已經這樣聲明了我的app.js
:
var index = require('./app/routes/index');
var app = express();
app.use('/', index);
然后在我的index.js
中,我的定義是這樣的:
var express = require('express');
var router = express.Router();
router.get('/', function(req, res, next) {
console.log('Enter root.');
});
router.get('/something', function(req, res, next) {
console.log('Enter something.');
});
快速路由到'/something'
就好了,但看不到'/'
。 有人知道為什么它不起作用嗎? 謝謝。
根據新信息修改:
如果您在瀏覽器中返回 304 狀態,那是因為瀏覽器已緩存 GET 請求,並且服務器告訴瀏覽器頁面尚未更改,因此瀏覽器只能使用緩存的副本。
您可以通過更改服務器隨請求發送的標頭來使頁面不可緩存。
有關更多信息,請參閱動態數據 Express.JS和NodeJS/express 的緩存控制:緩存和 304 狀態代碼和Nodejs Express 框架緩存。
您在index.js
沒有顯示exports
,所以這一行:
var index = require('./app/routes/index');
沒有完成任何事情。 index
是一個空對象,因此:
app.use('/', index);
不做任何事情,事實上,甚至可能導致錯誤。
也許你想要的是這樣的:
var express = require('express');
var router = express.Router();
router.get('/', function(req, res, next) {
console.log('Enter root.');
});
router.get('/something', function(req, res, next) {
console.log('Enter something.');
});
// export your router
module.exports = router;
然后,其他文件中的index
將是路由器。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.