簡體   English   中英

根“/”上的快速路由在 app.get 中不起作用

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

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