node.js中next()函数用发问题
发布于 8 年前 作者 wksmile 10797 次浏览 来自 问答

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路由怎么在这段代码中使用了?

5 回复

先把代码整理好先吧<br><br>来自<a href=“https://1340641314.github.io/react-cnode/” target="_blank">react-cnode手机版</a>

next();是顺序执行下一个路由,添加了擦数new Error(req.params.username + ’ does not exist.’)应该是执行某一个路由,支持这个参数的路由。

@ljxhappy 那这里面app.put路由不是没有执行么?这是书上看到的一个例子

@wksmile 你是要做一个restful吗?路由就像是一堆判断,你符合要求才会执行,不符合就不执行,你没发送put请求,当然不会执行啦

不用all 换成use试试

回到顶部