我一直在努力找到一个很好的next()方法的描述.在Express文档中,它说next('route')可以用来跳转到该路由,并跳过其间的所有路由,但有时next在没有参数的情况下被调用.有人知道描述next函数的好教程吗?

推荐答案

next()个没有争论的人说"只是Jest ,我真的不想处理这件事".它返回并试图找到下一条匹配的路由.

这是很有用的,比如说,如果你想有一个带有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('*', function(req, res, next){
  myHitCounter.count += 1;
  next();
});

app.get('/other_routes', function() {
  //...
});

Node.js相关问答推荐

NodeJS缓冲区大小逻辑:为什么默认是8KB,而不仅仅是数据大小?

在导入时未找到Pupeteer-PAGE-Proxy包

在Node.js下使用PostgreSQL客户端聚合PostgreSQL中的用户定义类型

为什么我的表单数据在我的POST请求中作为应用程序/json发送,为什么它返回错误请求错误?

自动将Selify打开的Chrome窗口移动到Mac OS中的第三个显示器

FindOne()返回所有值,而不是一个值

无法使用NPM安装REDUX和DATEPPICER

类扩展值[object object]不是构造函数或null

如何在带有 JS 的 Nodejs 中使用没有 Async 方法的 Await

将文件传递到 AWS lambdas(nodejs) + API 网关后重新上传文件

firebase/messaging 不提供名为 getToken 的导出

将 AllowDiskUse true 添加到 node.js 中的 MongoDB 聚合?

在安装 tensorflow 时遇到问题

使用加密模块的流功能获取文件的哈希(即:没有 hash.update 和 hash.digest)

制作一个接受命令行参数的脚本

node.js 是否支持yields ?

什么使用/尊重 .node-version 文件?

运行摩卡+伊斯坦布尔+通天塔

Node.js:如何附加到正在运行的进程并使用控制台调试服务器?

NodeJS 中的 HTTPS 请求