安装
npm i @expressots/adapter-express
此套件会做什么
这个适配器桥接了ExpressoTS Core和Express.js. 它提供HTTP服务器执行、路由注册、中间软件管道和 App 将一切连接在一起 并列安装 @expressots/core 运行特快.
快来看
import { AppExpress } from "@expressots/adapter-express";
import { AppContainer, CreateModule, bootstrap } from "@expressots/core";
import { AppController } from "./app.controller";
export class App extends AppExpress {
private readonly container: AppContainer = this.configContainer([CreateModule([AppController])]);
async configureServices(): Promise<void> {
// register middleware, interceptors, error handlers
}
}
void bootstrap(App); // starts on process.env.PORT or 3000
bootstrap() 构建容器,运行 AppExpress 生命周期钩子( c)globalConfiguration, (中文(简体) ), configureServices, (中文(简体) ), postServerInitialization),启动HTTP服务器,并在SIGINT / SIGTERM上电线优雅地关闭.
所需资源
- Express 5 (适配器的目标为Express 5 API;车体剖析使用Express 5本土剖析器)
- 节点.js . 20.19.0
@expressots/studio-agent是一个可选的对等依赖:安装它以启用ExpressotS Studio集成,或者省去它而不影响适配器.
预览模块
这个 micro-api 模块(gateway, service-mesh,无服务器,队列)是预览质量:它的API可能会改变. 用于实验,而不是生产关键路径.
Cloudflare 绑定提供者
在Cloudflare Workers上,一个微程序可以通过打入的符号而不是读取来解决其绑定(KV, D1, R2, 队列) env 每个处理器中的名称:
import {
cloudflareAdapter,
cloudflareBindings,
type CloudflareRequest,
micro,
} from "@expressots/adapter-express";
interface Env {
SETTINGS: KVNamespace;
DB: D1Database;
}
const bindings = cloudflareBindings<Env>();
const Settings = bindings.kv("SETTINGS");
const Database = bindings.d1("DB");
const app = micro<CloudflareRequest<Env>>({ showBanner: false, studio: { enabled: false } });
app.get("/theme", async (req) => ({
theme: await req.services.get(Settings).get("theme"),
}));
app.get("/items", (req) => req.services.get(Database).prepare("SELECT * FROM items").all());
export default cloudflareAdapter<Env>(app);
bindings.kv, (中文(简体) ),bindings.d1, (中文(简体) ),bindings.r2财务报告和审定财务报表bindings.queue归还被冻结的代币,按种类和名称进行纪念. 托肯斯只携带一种名称,所以在模块范围创建它们对于工人来说是安全的.req.services.get(token)从当前请求中读取约束env每次; 请求之间没有缓存 .req.services.has(token)报告是否有约束.req.cloudflare.env仍可直接进入.- 约束缺失
env筹集CloudflareBindingNotFoundError(单位:千美元)code: "EXPRESSOTS_CLOUDFLARE_BINDING_NOT_FOUND"),它像其他任何错误一样通过应用程序的错误处理器流出. 继承对象属性, 如toString从来没有被视为约束. - 绑定类型在结构上与 Cloudflare 运行时接口相匹配(例如, KV 命名空间被识别为
getWithMetadata) (中文(简体) ). 有明确的Env,每个工厂只接受其价值与同类相符的名称,一个匹配多个种类的值被拒为模糊. 没有Env类型中,任意字符串被接受,用于其绑定物被动态配置的应用程序.
供应商在Miniflare的KV、D1、R2和Quee执行中被核实,一个捆绑的门将其成本保持在1KiB gzip以下;两者在CI中运行 test/cloudflare-bindings-worker。 。 。 .
文档
指南、API参考、架构模式和实例访问 doc.expresso-ts.com (英语)。 。 。 .
捐款
欢迎来到快递社区 见 贡献指南 如何参与.
支持项目
- GitHub 赞助商
- 组织起来 关于 GitHub 的
- 解析器
- 报告问题
许可证
麻省理工学院. 见 自由主义。 。 。 .