node.js - 根 "/"上的快速路由在 app.get 中不起作用

标签 node.js express

我一直遇到这个问题,由于某种原因,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.JSNodeJS/express: Cache and 304 status codeNodejs 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/

相关文章:

javascript - 使用ajax向node.js进行AJAX查询获取和发布数据时出现错误

javascript - Vue.js 与服务 POST 请求不兼容吗?

node.js - 如何为 Node.js 应用程序设置本地子域

html - 在没有 Express 模板引擎的情况下向 HTML 添加值?

sockets - Websocket 和社交关系

node.js - 将自定义数据添加到 Ghost CMS

javascript - Jade 页面被多次渲染

angularjs - Mongoose 从两个相关集合中获取记录并填充

node.js - 显示来自 AWS 的用户个人资料图片

angularjs - 如何获取从 Angular 到 NodeJS/Express JS 的多个 GET 请求参数