根据请求参数有条件地使用中间件express

2024-01-23

我正在尝试根据请求查询参数决定要使用的中间件。

在主模块中我有这样的东西:

app.use(function(req, res){
  if (req.query.something) {
    // pass req, res to middleware_a
  } else {
    // pass req, res to middleware_b
  }
});

middleware_a and middleware_b are 两个快递应用程序他们自己创造的express()函数而不是常规的中间件函数(function(req, res, next))

找不到办法做到这一点


connect/express“中间件”没有什么神奇之处:它们只是函数 - 您可以像调用任何其他函数一样调用它们。

所以在你的例子中:

app.use(function(req, res, next){
  if (req.query.something) {
    middlewareA(req, res, next);
  } else {
    middlewareB(req, res, next);
  }
});

也就是说,可能有更优雅的方法来构建分层快速应用程序。查看TJ的视频 http://vimeo.com/56166857

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

根据请求参数有条件地使用中间件express 的相关文章

  • 如何执行“sudo nvm”?

    在我的 Mac 上 我想将一些需要 su 权限的包迁移到另一个节点版本 我使用 homebrew 安装 nvm 现在我需要执行 sudo nvm 或 reinstall packages将失败 me MacBook sudo nvm sud
  • 如何从此 AWS SecretsManager JSON 对象中提取字段?

    我正在使用 AWS Secrets Manager 来保护 REST API 的数据库信用 我正在使用 AWS Lambda API 网关和 RDS MySQL 以下是我如何获得它们 Load the AWS SDK var AWS req
  • Nodemailer - 在本地工作但不在生产环境中工作

    https gist github com anonymous ba82f74071cc38a0700b https gist github com anonymous ba82f74071cc38a0700b 在更改某些设置之前 例如主机
  • 从 websocket 发送数据到 socket.io

    我使用 websocket 接口连接到 websocket 服务器 如果我想将通过 websocket 接口从 websocket 服务器接收到的数据发送到通过 http 服务器连接到我的客户端 我应该使用 socket io 吗 所以最后
  • 如何将多个 api 请求中的多个可读流传输到单个可写流?

    期望的行为 实际行为 我尝试过的 重现步骤 研究 期望的行为 将从多个 api 请求接收到的多个可读流传输到单个可写流 API 响应来自 ibm watsontextToSpeech synthesize https cloud ibm c
  • API 使用令牌向 odoo 进行身份验证

    我想使用令牌从 Express 应用程序向 Odoo 进行身份验证 我在用odoo xmlrpc https www npmjs com package odoo xmlrpc连接 Odoo 的节点模块 我的快递应用程序 Odoo 要求 A
  • 监听文件夹和文件(更改)

    可以直接在 PHP 或 Node 上监听文件夹和文件的更改 通过事件 还是我需要创建自己的方法来执行此操作 Example 我需要听文件夹 user 如果我将一些文件添加到该目录中 PHP 或 Node 会收到信息并运行PathEvent
  • 如何获取nodejs程序中的nodejs版本?

    In a Node js 的调试器 https github com rocky trepanjs 有一个命令显示V8版本和调试器包版本 如何获取nodejs版本 我想我基本上可以运行命令node version or nodejs ver
  • 如何在查询语句之外从mysql查询中获取值?

    这是下面的函数console log function quo value value connection query SELECT role from roles where id 1 function error results fi
  • HTML 格式的 Google Apps 脚本

    是否可以在我的 HTML 中使用 google apps 脚本 我希望能够从外部框架 例如 Node js 以纯 Javascript 形式从表单写入电子表格 https developers google com apps script
  • 如何使用 sinon/mocha 模拟 npm 模块

    我正在尝试测试调用该模块的函数cors 我想测试一下cors会被称为 为此 我必须存根 模拟它 这是函数 cors js const cors require cors const setCors gt cors origin http l
  • 在 Node 中使用 Babel 导入与请求 [重复]

    这个问题在这里已经有答案了 我想在一个文件中导入一个类 use strict import models from model class Foo bar export default new Foo 当我使用导入时它有效 例如 impor
  • 使用 React.js + Express.js 发送电子邮件

    我在 ES6 中使用 React js 构建了一个 Web 应用程序 我目前想要创建一个基本的 联系我们 页面并想要发送电子邮件 我是 React 新手 刚刚发现我实际上无法使用 React 本身发送电子邮件 我正在遵循教程nodemail
  • 如何在Electron WebView中连接到代理?

    因为我可以通过连接到免费代理服务器 或付费 目前用作电子 JS 解决方案作为桌面应用程序 代理列表服务器示例 http proxylist hidemyass com http proxylist hidemyass com 您可以使用 s
  • 如何将 emscripten 浏览器输入法从 window.prompt 更改为更合理的输入法?

    我有一个 C 函数 一旦调用它就会消耗来自 stdin 的输入 使用 emscripten 将此函数导出到 javascript 会导致调用 window prompt 与浏览器提示交互确实是一项乏味的任务 首先 您一次只能粘贴一行 其次
  • libxmljs 的替代品 [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 目标 使用 Node js 访问网页 使用 xpath 语法操作 DOM 并打印新的 DOM libxm
  • 如何设置上传的文件名?

    By using multer I made it to request image file like this 这个文件存储在我设置的 上传 文件夹中 我的代码如下 var multer require multer var uploa
  • editMessageReplyMarkup 方法删除内联键盘

    我正在使用 node js 制作一个电报机器人node telegram bot api图书馆 我回答callback query并想更换我的内联键盘 下面的代码显示了我如何尝试使用此方法 但是当我在电报中点击键盘时 它就消失了 bot o
  • firebase 和 firebase-admin npm 模块有什么区别?

    我想使用 Firebase 身份验证 数据库和存储 构建 Node js Web 应用程序 但我对应该使用哪个模块感到困惑 firebase or firebase 管理员 或两者 管理 SDK 运行您的代码管理权限 https fireb
  • 如何在超级测试中模拟中间件?

    我想测试中间件是否在app js叫做 虽然我嘲笑该模块work js 它仍然运行原始代码 app js const work require work const express require require const app expr

随机推荐

  • Django:按月/年分组的日期属性的总和

    我想将此查询从 SQL 放入 Django select date format date Y m as month sum quantity as hours from hourentries group by date format d
  • VBA 代码无法连接到 SQL Server 2008

    我的代码无法连接到 Microsoft SQL Server 2008 中的数据库 它尝试连接 但随后出现以下错误 运行时错误 SQL Server 不存在或访问被拒绝 服务器受密码保护 但我认为是我造成的 任何帮助将不胜感激 发生错误的地
  • 如何仅翻转变换矩阵的一个轴?

    我有一个 4x4 变换矩阵 然而 在尝试转换后我注意到这个动作andY 轴的旋转方向相反 其余的都是正确的 我从其他一些 API 获得了这个矩阵 所以可能是坐标系的差异 那么 如何翻转变换矩阵的轴呢 如果只有平移 我可以在 Y 平移上添加减
  • 查找类以按名称实例化,无需命名空间或程序集? (。网)

    我想按名称 字符串 实例化一个类 而不指定命名空间或程序集 像这样 Unity语法 var processor container Resolve
  • HttpClient 与 HttpWebRequest

    我有一个大文件 我必须将其发送到 Web api 客户端 数据是多部分的 问题是 如果文件是通过 http Web 请求发送的 那么它会在 webapi 上快速上传 对于此请求 文件内容直接写入请求流 就好像通过 Httpclient ne
  • 绕过 Rsync 提示“您确定要继续连接吗”

    如何绕过这个问题或添加一个自动回答这个问题的标志 因为我正在尝试编写一个脚本 并且这个问题不断停止 rsync 的过程 因为在提示时无法在脚本中回答这个问题 Set the StrictHostKeyChecking选项no 在配置文件中或
  • OpenCV-Python 中的简单数字识别 OCR

    我正在尝试在 OpenCV Python cv2 中实现 数字识别 OCR 它仅用于学习目的 我想学习 OpenCV 中的 KNearest 和 SVM 功能 我有每个数字 100 个样本 即图像 我想和他们一起训练 有一个样本letter
  • 通过 Java 使用 Selenium Webdriver 缺少 size() 选项

    一直在参加一些课程来提高我使用 Selenium Webdriver 的自动化技能 我没有size 方法作为尝试计算页面内链接数量时的一个选项 我缺少一些罐子吗 导入库 java public static void main String
  • SVG 坐标系 - 点与像素

    阅读通过SVG 1 1 规范 http www w3 org TR SVG11 coords html 我试图理解用于定义初始视口的单位与文档其余部分使用的单位之间的关系 如果视口最初是使用点定义的
  • 我的 $Foo ATL 解决方案中的 ($Foo)PS 项目有何用途?

    在MSVC中创建一个ATL项目似乎创建的不是一个而是两个项目 后者的名称与前者相同 但名称后附加了 PS 第二个项目的目的是什么 我如何判断我是否需要它 COM 支持跨两个不同的线程 两个不同的进程或两台不同的机器进行接口方法调用 这就是所
  • 当前单元格展开时折叠其他 UITableViewCell

    我正在努力扩展我的UITableViewCell我可以扩展细胞 但我想崩溃UITableViewCell哪些没有被选中 我在代码中尝试的内容 var expandedCells Int IBOutlet weak var tableView
  • 基于视图和单元格的 NSTableView

    Cocoa 中基于单元格的表格视图和基于视图的表格视图之间的主要区别是什么 我的理解是基于单元格的表格视图基本上用于显示字符串 基于视图用于自定义单元格 诸如拖动行 选择等用户事件可以在基于视图中处理 基于单元格的表格视图使用 object
  • 如何完全禁用LogCat暂停?

    我对新的 LogCat 及其暂停功能有一个大问题 当我想从中读取一些较旧的条目时 我喜欢暂停输出的想法 但有时我希望输出不间断 这样我就可以触摸手机 并通过读取输出来查看它的反应 所以令我非常沮丧的是 LogCat 经常完全暂停 暂停按钮被
  • 在 div 上使用“display:table-cell”有缺点吗?

    我想要实现的是拥有一个固定宽度的第一个 div 和一个流动的第二个 div 它将填充父 div 宽度的其余宽度 div class clearfix div style width 100px some content div div so
  • hsc2hs:使用 Haskell 改变 C 结构

    我正在尝试编写一个与 C 通信的 Haskell 程序 最终通过 GHC iOS 用于 iOS 我希望它将一个字符串从 C 传递到 Haskell 让 Haskell 处理它 然后通过 hsc2s 将一些数据类型从 Haskell 返回到
  • 如何在 Mahout 0.9 中实现 SlopeOne 推荐器?

    我是 Mahout 新手 正在尝试使用 0 5 版本的 Mahout in Action 早期的例子之一要求使用斜率一推荐器 Mahout 0 9 中还包含此推荐器吗 我查看了文档 但找不到它 也许它已经改名了 感谢您的帮助 Mahout
  • 当表没有行时,将表的可见性设置为 false(在报告服务中)

    如果表没有行 有没有办法将表的可见性设置为 false 我想在 Reporting Services 中隐藏没有行的表 将 NoRows 设置为 在这种情况下是不够的 因为仍然为表格留有空间 并且表格的某些格式仍然可见 我正在使用 Micr
  • 在 Python 中 - 解析响应 xml 并查找特定文本值

    我是 python 新手 在使用 xml 和 python 时遇到特别困难 我遇到的情况是这样的 我正在尝试计算一个单词在 xml 文档中出现的次数 很简单 但是 xml 文档是来自服务器的响应 是否可以在不写入文件的情况下执行此操作 尝试
  • Ansible,将字典合并为一次

    我有这个示例 yaml 文件 haproxy yml rules aa PHP53 url php53 1 aa my example com PHP55 url php55 1 aa my example com PHP56 url ph
  • 根据请求参数有条件地使用中间件express

    我正在尝试根据请求查询参数决定要使用的中间件 在主模块中我有这样的东西 app use function req res if req query something pass req res to middleware a else pa