基石表达
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配置值 。 听众 可使用此事件替换或简单地取消此行为.
- 在设置默认 cookie 解析器前发送 。 默认
表示中间器件, 饼干派瑟,使用
页:1
- 基建表达 配置 会话
- 在默认会话处理设置前发送 。 默认情况下
表示中间器件, 专会,安装和使用
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。 。 。 .