var users = { ‘byvoid’: { name: ‘Carbo’, website: ‘http://www.byvoid.com’ } }; app.all(’/user/:username’, function(req, res, next) { // 检查用户是否存在 if (users[req.params.username]) { next(); } else { next(new Error(req.params.username + ’ does not exist.’)); } }); app.get(’/user/:username’, function(req, res) { // 用户一定存在,直接展示 res.send(JSON.stringify(users[req.params.username])); }); app.put(’/user/:username’, function(req, res) { // 修改用户信息 res.send(‘Done’); });
上面代码app.all路由检查用户是否存在,如果存在通过next()函数转移到app.get路由中。用户不存在的else里面next(new Error(req.params.username + ’ does not exist.’));这段代码是什么意思呢,下一步是转到那一个路由?app.put路由怎么在这段代码中使用了?
先把代码整理好先吧
来自react-cnode手机版
next();是顺序执行下一个路由,添加了擦数new Error(req.params.username + ’ does not exist.’)应该是执行某一个路由,支持这个参数的路由。
@ljxhappy 那这里面app.put路由不是没有执行么?这是书上看到的一个例子
@wksmile 你是要做一个restful吗?路由就像是一堆判断,你符合要求才会执行,不符合就不执行,你没发送put请求,当然不会执行啦
不用all 换成use试试