CNode

express默认建立的app.js里,app.use('/', routes)为什么要有第一个参数/?

问答
Hhwoarangzk发布于12 年前最后回复11 年前7 回复7197 浏览0 收藏

我写成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里的路由的路径也添加进来啊?

查看回复

回复 (7)

Y
yuedun#1·12 年前

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

H
hwoarangzk#2·12 年前

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

K
KurtisLiu#3·12 年前
引用 hwoarangzk我试了一下直接在.route/index里加了个app.get('/users') 把写在.route/users里的给覆盖掉了。。。

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

H
hwoarangzk#4·12 年前

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

L
lyn0032#5·11 年前

app.use('/',routes);就是把所有routes目录下的路由使用,还是只用index.js的还是什么?

K
klausgao#6·11 年前

我之前也纳闷过,后来去官网翻API就明白了,如果不带/,其实就是默认了是在/之下的所有路径执行 自豪地采用 CNodeJS ionic

K
klausgao#7·11 年前

use的意思是任意的方法,比如get post这些,都会执行。第一个参数一般是路径的,如果直接是回调,就是默认路径是根 自豪地采用 CNodeJS ionic

参与回复
登录后即可参与回复。登录