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

时间:2015-11-28 00:19:01

标签: node.js express

我一直有这个问题因为某些原因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'就好了,但看不到'/'。任何人都知道为什么它不起作用?感谢。

1 个答案:

答案 0 :(得分:2)

根据新信息修改:

如果您在浏览器中获得304状态,那是因为浏览器缓存了GET请求,并且服务器告诉浏览器该页面尚未更改,因此浏览器只能使用缓存副本。 / p>

您可以通过更改服务器随请求发送的标头来使页面不可缓存。

有关详细信息,请参阅Cache Control for Dynamic Data Express.JSNodeJS/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将成为路由器。