@bedrock/express

中文文档
8.8.4发布于 2026/10/28Apache-2.0ES Module近 30 天下载 4606

贝德洛克快车舱

中文使用文档
文档目录6 节
  1. 所需资源
  2. 快速示例
  3. 配置
  4. 如何运作
  5. 活动
  6. 许可证

基石表达

A 类 基石 模块集成 表达式 与 基石 提供 用于编写Web应用程序的路由框架和其他功能。 这个 使用该 基石 发送一些配置的事件系统 用于向核心添加特性的依赖模块的事件 表达式 服务器.

所需资源

这个软件需要并支持维持了最新版本的Node.js. 更新可能会去除对旧的未维护的平台版本的支持. 请使用 依赖版本锁定文件和测试以确保与此兼容 软件.

快速示例

npm install @bedrock/express
import * as bedrock from '@bedrock/core';

bedrock.events.on('bedrock-express.configure.routes', addRoutes);

function addRoutes(app) {
  app.get('/', function(req, res) {
    res.send('Hello World!');
  });
}

配置

关于配置的文件,见 配置( j)。 。 。 .

config.express.session.ttl 在5.0.0版本中添加了应是一个 数字,以毫秒表示会话应持续多久。 这个可以 由服务器上的会话存储而不是客户端执行.

config.express.session.ttl 默认为以毫秒计的30分钟.

此选项应当用于: 短会存储执行 可以访问 @bedrock/express 配置选项. bedrock-session-mongodb 可用作实例.

如何运作

基石表达 使用 基岩服务器 模块。 它采取的方法是大多数应用程序构建 以非常相似的方式设置它。 因此, 基石表达 套装 使用非常常见的选项和中间软件上架默认快件服务器,但允许 其他模块决定要更改或关闭的部件。 为了简单的改变, 模块可以使用 bedrock.config.express 来配置快递服务器。 对于 更复杂的更改或完全取消选定的默认行为,模块 能够使用事件 基石表达 发射.

基石表达 将开始建立快递服务器 并释放其 核心时的事件 bedrock.start 事件已释放。 当 bedrock.ready 事件被释放, 基石表达 将附加快捷服务器到 页:1 bedrock-server HTTPS 服务器开始接受请求 .

默认, bedrock-server 仅服务 HTTPS 的请求;如果有 HTTP请求到达后,它们将被重定向到HTTPS. 如果你想的话 启用 HTTP 请求, 执行以下操作:

import * as brServer from '@bedrock/server';
import * as brExpress from '@bedrock/express';

// track when bedrock is ready to attach express
bedrock.events.on('bedrock.ready', function() {
  // attach express app to regular http
  brServer.servers.http.on('request', brExpress.requestHandler);
});

活动

基石表达 发布几个模块可能听到的事件。 多数 这些事件在默认快件服务器的设置过程中释放出来, 仅允许模块改变他们所感兴趣的行为 定制。 每个事件都会通过快递服务器对象作为 第一个参数为听众函数。 最常用的事件是 bedrock-express.configure.routes,允许模块附加新路径 以表示例如提供REST API.

在5.0.0版本中,a 粘贴 兼容层被添加到 向 粘贴,它是一个更好的维护 和更多的表演者 http服务器框架. 增加了一些与固定设置有关的新活动.

  • 基岩表达法 fastify.init
    • 一旦封存(-表达)就绪,即可进入 fastify 实例;在快递服务器的任何其他设置之前.
  • 基岩表达式.init
    • 在快递服务器的任何其他设置之前发送.
  • 基岩表达式.init
    • 在快递服务器的任何其他设置之前发送.
  • 基岩表达式.configure.logger
    • 在约束地基的伐木系统之前就被放出来了 默认, 中间的快件, 摩根,用于写入 combined 服务器 获取基建公司的信息 access 伐木机,我们是... 此事件可用于 以另一种方式登录服务器访问和/或可以取消以阻止 伐木到基岩区 access 伐木机,我们是...
  • 基岩表达式. 配置. bodyParser
    • 在默认的正文解析器设置之前发送 。 默认为快取 将解析 application/json 消息正文进入 JavaScript 对象 。 这个 将不解析 application/x-www-form-urlencoded 作为小的尝试 帮助防止CSRF攻击预期解析JSON但可能 收到解析 application/x-www-form-urlencoded 换句话说. 此事件的听众可以更改默认的解析行为或关闭它 通过取消此事件.
  • 基岩表达式. configure.cookieParser
    • 在设置默认 cookie 解析器前发送 。 默认 表示中间器件, 饼干派瑟,使用 页:1 bedrock.config.express.session.secret 配置值 。 听众 可使用此事件替换或简单地取消此行为.
  • 基建表达 配置 会话
    • 在默认会话处理设置前发送 。 默认情况下 表示中间器件, 专会,安装和使用 bedrock.config.express.session 配置对象。 听众可以使用 启动会话存储或替换或取消 默认会话处理全部行为 .
  • 基岩表达式 构型 静态
    • 在配置默认的静态内容处理器之前发送 。 以 默认, 基建表达式提供了配置多重的能力 静态路线。 在 bedrock.config.express.static 数组将以快取方式注册. 路由配置可能指定要服务的文件或整个路径,以及 是否应当启用 CORS 。 处理器将添加在 数组的倒序。 这将优先处理路由配置 如果有一个以上的处理器,则最后被推入数组 对于特定的路线。 这意味着,当收到请求时 表示匹配特定路由,将给予的处理器 第一次响应机会将是匹配数组中的最后一个 路线。 如果处理器找不到要发送的文件, 那么 使用匹配路径创建的第二到最后处理器将被执行,并且 这样的话 这种方法使项目能够轻松地覆盖那些静态的 文件通过配置系统发送到特定路径.
  • (原始内容存档于2018-10-21) (中文(中国大陆) ). kidom-express.configure.cache
    • 于 bedrock-express.configure.static 默认之前 安装了动态内容的缓存处理器 。 默认情况下,缓存 通过设置这些标题来禁用动态内容 :
      • 缓存控制: 无缓存、 无存储、 必须重新验证
      • 过期: 0 听众可以替换和/或取消这种行为.
  • (原始内容存档于2018-09-21) (英语). groot-expression.configure.routter
    • 在任何路线被添加到默认的快路由器之前发送.
  • 基础表达式.confit.routes
    • 于 bedrock-express.configure.router 以允许模块 添加要表达的路线。 这是模块绑定的最常见事件 改为: 一个模块应该附带一个听众参与这一事件,以揭露,例如, a 最新API.
  • (原始内容存档于2018-09-21) (中文(简体) ). Cystom-express.configure.errorHandlers
    • 于 bedrock-express.configure.routes 来处理任何错误 路线可能已经产生。 听者可以使用此事件附加自定义 错误处理器 .
  • 基岩表达式. configure. unhand ErrorHandler
    • 于 bedrock-express.configure.errorHandlers 将附件a 处理任何未处理的错误。 默认情况下, 一个未处理错误处理器 已安装,以是否改变其行为 bedrock.config.express.dumpExceptions 实值 true如果是的话 true,然后是一个 错误和堆栈跟踪将在 html 中显示或通过 JSON 发送, 取决于 根据客户的要求 如果未设置, 那么一个未处理的错误处理器 将发送 500 Internal Server Error 内 text/plain 除非错误本身指定了不同的消息和/或状态代码 发送.
  • 基石表达. start
    • 释放前 bedrock-express.ready 允许听众执行任何 自定义行为在快递服务器宣布准备好之前 .
  • 基础表达 准备好
    • 于 bedrock-express.start,表示所有听众 启动时应该已经完成了任何特殊的定制行为.
  • 基岩表达,快活,准备好
    • 于 bedrock-express.ready 曾经是快件 通过以往所有活动组装 fastify 这样 它可以服务于 bedrock-server.ready。 。 。 .

许可证

Apache 许可证,2.0版本 版权所有 2011-2024 Digital Bazaar, Inc.

其他贝德罗克图书馆可使用非商业许可证 诸如自学、研究、个人项目或评价目的. 见 Bedrock 非商业许可证 v1.0 详细情况.

商业许可证和通过联系获得支助 数字集市 支持@ digitalbazaar.com。 。 。 .

版本与发布记录

@bedrock/express 共发布 27 个版本,首次发布于 2022/04/02;过去 12 个月发布了 15 个版本。

版本发布日期距今
8.8.4latest2026/10/2810 天前
8.8.32026/10/2216 天前
8.8.22026/10/2216 天前
8.8.12026/09/151 个月前
8.8.02026/08/222 个月前
8.7.02026/06/055 个月前

关于 @bedrock/express 的常见问题

@bedrock/express 是什么?

贝德洛克快车舱

如何安装 @bedrock/express?

在项目目录运行 npm install @bedrock/express,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:@bedrock/core(^6.3.0)、@bedrock/server(^5.2.1)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

@bedrock/express 支持 TypeScript 吗?

该包的 package.json 没有声明类型入口。需要类型提示时,可以在 npm 上查找社区维护的 @types/bedrock__express 是否存在。

@bedrock/express 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@bedrock/express 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=22。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@bedrock/express 可以商用吗?

@bedrock/express 使用 Apache-2.0 许可。宽松许可:允许商业使用、修改和再分发,并附带明确的专利授权;分发时需保留许可与 NOTICE 文件,修改过的文件要注明改动。以上为概括,不构成法律意见,请以许可原文为准。

@bedrock/express 的下载量有多少?

根据 npm 官方下载统计,@bedrock/express 在 2026/10/08 – 2026/11/06 这 30 天内被下载 4,606 次,日均约 154 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@bedrock/express 还在维护吗?

最新版本 8.8.4 发布于 2026/10/28(10 天前);至今共发布 27 个版本,其中过去 12 个月发布了 15 个;首次发布于 2022/04/02。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。