# @bedrock/express 中文文档

规范地址：https://npmcn.com/package/%40bedrock/express/

版本：8\.8\.4
npm 元数据更新时间：2026-10-27T22:46:12.865Z
中文译文更新时间：2026-11-07T20:19:57.235Z
软件包许可：Apache-2\.0

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40bedrock/express
原文对照：https://npmcn.com/package/%40bedrock/express/?lang=original
项目主页：https://github.com/digitalbazaar/bedrock-express
源码仓库：https://github.com/digitalbazaar/bedrock-express

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：67.3 kB，9 个文件
- 模块格式：ES Module
- TypeScript 类型：未声明
- Node.js 要求：\>=22
- 运行依赖：10 个
- peer 依赖：@bedrock/core ^6\.3\.0，@bedrock/server ^5\.2\.1
- 首次发布：2022-04-01T19:19:43.217Z
- 最新版本发布：2026-10-27T22:46:12.579Z
- 近 30 天下载量：4606（2026-10-08 至 2026-11-06，npm 官方下载统计）
- 已发布版本数：27（近 12 个月 15 个）

## 中文简介

贝德洛克快车舱

## 安装

```sh
npm install @bedrock/express
```

也可以使用：`pnpm add @bedrock/express`、`yarn add @bedrock/express`、`bun add @bedrock/express`

## README

# 基石表达

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

## 所需资源

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

## 快速示例

```
npm install @bedrock/express
```

```js
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)](https://npmcn.com/package/%40bedrock/express/lib/config.js)。 。 。 .

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

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

此选项应当用于: [短会存储执行](https://www.npmjs.com/package/express-session#session-store-implementation) 可以访问 `@bedrock/express` 配置选项. [`bedrock-session-mongodb`](https://github.com/digitalbazaar/bedrock-session-mongodb/pull/12/files) 可用作实例.

## 如何运作

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

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

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

```js
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 [粘贴](https://github.com/fastify/fastify) 兼容层被添加到 向 [粘贴](https://github.com/fastify/fastify),它是一个更好的维护 和更多的表演者 http服务器框架. 增加了一些与固定设置有关的新活动.

-   **基岩表达法 fastify.init**
    -   一旦封存(-表达)就绪,即可进入 `fastify` 实例;在快递服务器的任何其他设置之前.
-   **基岩表达式.init**
    -   在快递服务器的任何其他设置之前发送.
-   **基岩表达式.init**
    -   在快递服务器的任何其他设置之前发送.
-   **基岩表达式.configure.logger**
    -   在约束地基的伐木系统之前就被放出来了 默认, 中间的快件, [摩根](https://github.com/expressjs/morgan),用于写入 `combined` 服务器 获取基建公司的信息 `access` 伐木机,我们是... 此事件可用于 以另一种方式登录服务器访问和/或可以取消以阻止 伐木到基岩区 `access` 伐木机,我们是...
-   **基岩表达式. 配置. bodyParser**
    -   在默认的正文解析器设置之前发送 。 默认为快取 将解析 `application/json` 消息正文进入 JavaScript 对象 。 这个 将不解析 `application/x-www-form-urlencoded` 作为小的尝试 帮助防止CSRF攻击预期解析JSON但可能 收到解析 `application/x-www-form-urlencoded` 换句话说. 此事件的听众可以更改默认的解析行为或关闭它 通过取消此事件.
-   **基岩表达式. configure.cookieParser**
    -   在设置默认 cookie 解析器前发送 。 默认 表示中间器件, [饼干派瑟](https://github.com/expressjs/cookie-parser),使用 页:1 `bedrock.config.express.session.secret` 配置值 。 听众 可使用此事件替换或简单地取消此行为.
-   **基建表达 配置 会话**
    -   在默认会话处理设置前发送 。 默认情况下 表示中间器件, [专会](https://github.com/expressjs/session),安装和使用 `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版本](https://npmcn.com/package/%40bedrock/express/LICENSE) 版权所有 2011-2024 Digital Bazaar, Inc.

其他贝德罗克图书馆可使用非商业许可证 诸如自学、研究、个人项目或评价目的. 见 [Bedrock 非商业许可证 v1.0](https://github.com/digitalbazaar/bedrock/blob/main/LICENSES/LicenseRef-Bedrock-NC-1.0.txt) 详细情况.

商业许可证和通过联系获得支助 [数字集市](https://digitalbazaar.com/) [支持@ digitalbazaar.com](mailto:support@digitalbazaar.com)。 。 。 .

## 常见问题

### @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 和提交记录判断。

