关于express路由的问题

var router = express.Router();

router.get('/', function(req, res) {
  res.send('<h1>Hello World</h1>');
});

app.use('/home', router)

上面代码新建了一个路由对象,该对象指定访问根路由(/)时,返回Hello World。然后,将该路由加载在/home路径,也就是说,访问/home会返回Hello World。
但是如果增加一个路由

 router.get('/a', function(req, res) {
      res.send('<h1>Hello pojia</h1>');
    });

这时候有'/','/a'两个路由。那这时候访问'/home'会输出什么呢?为什么?

阅读 2k
3 个回答

你碰巧用到了express管理路由层级的技巧。
app.use('/home',router) - express将路由/home下的的请求交由router处理,router里设定的/和和/a是相对于 /home的 , 即分别对应 /home/,/home/a两个路由。
以上,实现了路由的“层级”管理。

/home 输出Hello World
/home/a 才会输出Hello pojia
/和/a 都是Notfound

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题