我一直遇到这个问题,由于某种原因,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 请求,并且服务器告诉浏览器页面尚未更改,因此浏览器可以仅使用缓存的副本。
您可以通过更改服务器随请求发送的 header 来使页面不可缓存。
参见Cache Control for Dynamic Data Express.JS和 NodeJS/express: Cache and 304 status code和 Nodejs Express framework caching了解更多信息。
<小时/>您在 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
将成为路由器。
关于node.js - 根 "/"上的快速路由在 app.get 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33966343/