Node,Express - 无法获取路由

时间:2016-08-11 22:17:35

标签: javascript node.js express routing server

我正在构建一个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'时,我在浏览器中看到此错误 - '无法获取/关于'

home.html和about.html文件都位于相同的views目录中。

这里的任何帮助将非常感谢!

2 个答案:

答案 0 :(得分:11)

让我引用明确的文件:

  

路由将立即匹配其路径后面的任何路径“/”。例如:app.use(' / apple',...)将匹配“/ apple”,“/ apple / images”,“/ apple / images / news”等。   see express doc

这是"没有工作"因为您在/aboutapp.use中设置了router.get。尝试请求/about/about,你会发现这是有效的(只是不是你想要的)..

现在只需更改/about中的routes/about.js,然后重新运行并尝试请求/about,它就能正常运行:)

答案 1 :(得分:7)

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

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

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

module.exports = router;
相关问题