express默认建立的app.js里,app.use('/', routes)为什么要有第一个参数/?
发布于 4个月前 作者 hwoarangzk 425 次浏览 来自 问答

我写成app.use(routes) 能够找到./route/index里的路由来进行不同的处理 另外还有: app.use('/users’, users); users.js: var express = require(‘express’); var router = express.Router();

/* GET users listing. */ router.get('/’, function(req, res) { res.send(‘respond with a resource’); });

module.exports = router; 按照这种写法,如果我url是/users 是不是会在/users的基础上,把users.js里的路由的路径也添加进来啊?

4 回复

只需要app.use(routes)就够了,会将user.js里的所有路由添加进来

我试了一下直接在.route/index里加了个app.get(‘/users’) 把写在.route/users里的给覆盖掉了。。。

@hwoarangzk 这里是因为在你的app.js中先执行 app.use('/’, routes) 然后执行 app.use('/users’, users) 所以先匹配到index中的路由,在./routes/index.js路由函数中加一个next()就能触发./routes/users中的函数了

为什么app.use允许第一个参数是一个代表路径的字符串呢?

回到顶部