节点,快递 - 无法获取路线
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.use
和 router.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;
【讨论】:
做到了!非常感谢您的帮助。以上是关于节点,快递 - 无法获取路线的主要内容,如果未能解决你的问题,请参考以下文章