节点,快递 - 无法获取路线

Posted

技术标签:

【中文标题】节点,快递 - 无法获取路线【英文标题】:Node, Express - CANNOT GET route 【发布时间】:2016-12-18 19:38:29 【问题描述】:

我正在构建一个 Express 应用,但遇到了一些路由问题。我的“/”路线运行良好,但其他路线却没有。我查看了人们发布的其他问题,但这些问题并没有解决我的问题。

我有一个 routes/index.js 文件:

module.exports = function(app)
  app.use('/', require('./routes/home'));
  app.use('/about', require('./routes/about'));

我的路线/home.js: - 工作!

const express = require('express');
const router = express.Router();

router.get('/', function(req, res) 
   res.render('app/home');
);

module.exports = router;

我的路线/about.js: - 不工作!

const express = require('express');
const router = express.Router();

router.get('/about', function(req, res) 
   res.render('app/about');
);

module.exports = router;

当我转到“/about”时,我在浏览器中看到了这个错误 - 'Cannot GET /about'

home.html 和 about.html 文件都位于同一个视图目录中。

这里的任何帮助将不胜感激!

【问题讨论】:

“不工作”不是一个很好的问题描述。当您尝试访问http://your.server/about 时会发生什么?您是否发现任何错误? 是的,很抱歉描述模糊。在页面上出现错误 - “无法获取 /about”。浏览器控制台或终端没有错误 【参考方案1】:

让我引用 express doc:

路由将匹配紧随其路径的任何路径,并带有“/”。例如: app.use('/apple', ...) 将匹配“/apple”、“/apple/images”、“/apple/images/news”等。 see express doc

这是“不起作用”,因为您在 app.userouter.get 中设置了 /about。尝试请求/about/about,你会发现这是有效的(只是不像你想要的那样)..

现在只需更改routes/about.js 中的/about,然后重新运行并尝试请求/about,它将起作用:)

【讨论】:

是的,我明白了!谢谢你。 :) 谢谢!这很有帮助!【参考方案2】:

您的路线设置为/about/about。 将about.js 更改为:

const express = require('express');
const router = express.Router();

router.get('/', function(req, res) 
   res.render('app/about');
);

module.exports = router;

【讨论】:

做到了!非常感谢您的帮助。

以上是关于节点,快递 - 无法获取路线的主要内容,如果未能解决你的问题,请参考以下文章

快递路线参数条件

蓝鸟承诺在快递路线解决

使用带护照和快递的可选授权路线

限制快递到特定路线

Nodejs,Express,路线

包裹快递 题解