一直在试图找到一种很好的next()方法描述。在Express文档中,它说next('route')可用于跳转到该路由并跳过其间的所有路由,但有时next被称为没有参数。有人知道描述该next功能的优秀教程等吗?
next()
next('route')
next
next()毫无争议的说法是“开玩笑,我实际上并不想处理这个问题”。它返回并尝试查找将匹配的下一条路线。
这很有用,例如,如果您想使用某种带有URL插件的页面管理器以及许多其他功能,但这是一个示例。
app.get('/:pageslug', function(req, res, next){ var page = db.findPage(req.params.pageslug); if (page) { res.send(page.body); } else { next(); } }); app.get('/other_routes', function() { //... });
组成代码的代码应检查数据库中是否存在具有特定ID标记的页面。如果找到一个渲染器!如果找不到,则忽略此路由处理程序并检查其他路由处理程序。
因此next(),没有参数就可以假装您没有处理该路线,以便其他人可以选择它。
或点击app.all('*')。这使您可以执行一些共享的设置代码,然后转到其他路线以执行更具体的操作。
app.all('*')
app.all('*', function(req, res, next){ myHitCounter.count += 1; next(); }); app.get('/other_routes', function() { //... });