我一直有这个问题因为某些原因Express路由没有看到我的root获取功能。我用这种方式宣布了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'
就好了,但看不到'/'
。任何人都知道为什么它不起作用?感谢。
答案 0 :(得分:2)
根据新信息修改:
如果您在浏览器中获得304状态,那是因为浏览器缓存了GET请求,并且服务器告诉浏览器该页面尚未更改,因此浏览器只能使用缓存副本。 / p>
您可以通过更改服务器随请求发送的标头来使页面不可缓存。
有关详细信息,请参阅Cache Control for Dynamic Data Express.JS和NodeJS/express: Cache and 304 status code以及Nodejs Express framework caching。
您在exports
中未显示index.js
所以此行:
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
将成为路由器。