@devbie/ newbie (英语)
包括电池在内的后端应用框架运行时间 雀巢号11, (中文(简体) ), 普里斯玛7 财务报告和审定财务报表 运通5纽比给你一个制作准备 单调的靴子- 安全中间器件、 验证、 光标 平滑管、分层例外过滤链、扩展的Prisma接入和 可选的自我报告——不强迫你把它全部接通.
特征
- 单打靴子 —— 说
NewbieFactory.create()配置 CORS, cookie 解析、体解析、全球ValidationPipe外壳(生产)和 Swagger(开发),然后启动HTTP服务器. - 全球框架单元 —— 说
FrameworkModule.forRoot()安装配置 装入,限制速率,HttpModule,一个统一的响应拦截器和一个 五层例外过滤链. - 扩展 Prisma 集成 - 提供您生成的
PrismaClient财务报告和审定财务报表 获得全局PrismaService支持已注册的客户端扩展 模块初始化后. - 查询参数管 - 光标指针、光标弹、命令和
select编号 :include编号 :where解析 Prisma 驱动的列表终点 . - 共享的DTO和公用事业 - 请求/答复DTO和密码, 日期时间、阵列和其他常见帮助者.
- 建造的可观察性 ——有限度要求的优雅停产
排水、观察-模式端口-跟踪恢复和内置后端显示器
探测器
BACKEND_MONITOR_ENDPOINT+ 键BACKEND_MONITOR_TOKEN和 模块组合报告员(MODULE_HUB_ENDPOINT+ 键MODULE_HUB_TOKEN) (中文(简体) ).
所需资源
@devbie/newbie 是运行时库; NestJS, Prisma 和相关软件包是
声明为对等依赖, 因此您的工程控制其版本 :
| 同伴依赖关系 | 版本 |
|---|---|
@nestjs/common | ^11.0.0 |
@nestjs/core | ^11.0.0 |
@nestjs/platform-express | ^11.0.0 |
@nestjs/config | ^4.0.0 |
@nestjs/swagger | ^11.0.0 |
@nestjs/throttler | ^6.0.0 |
@nestjs/axios | ^4.0.0 |
@prisma/client | ^7.0.0 |
@prisma/adapter-pg | ^7.0.0 |
express | ^5.0.0 |
安装
npm install @devbie/newbie
快开始
登记册 FrameworkModule.forRoot() 在你的根模块中,并通过您的
生成 PrismaClient 构造器 :
// src/application/application.module.ts
import { Module } from "@nestjs/common";
import { FrameworkModule } from "@devbie/newbie";
import { PrismaClient } from "@generated/prisma/client";
import { ApplicationController } from "./application.controller";
@Module({
imports: [FrameworkModule.forRoot({ prisma: { PrismaClient } })],
controllers: [ApplicationController],
})
export class ApplicationModule {}
然后带靴子 NewbieFactory数字 :
// src/main.ts
import { NewbieFactory } from "@devbie/newbie";
import { ApplicationModule } from "./application/application.module";
async function bootstrap(): Promise<void> {
await NewbieFactory.create(ApplicationModule, {
swagger: { title: "My API" },
});
}
void bootstrap();
获得这个结构的最快方法 就是用脚手架安装一个项目 伴侣 CLI :
npx @devbie/newbie-cli create my-app
新 Factory 选项
NewbieFactory.create(rootModule, options) 接受以下选项
(每个领域都是可选的):
| 选项 | 类型 | 默认 | 说明 |
|---|---|---|---|
environment | string | ENVIRONMENT 或者说 development | development 允许斯瓦格; production 允许头盔. |
port | number | PORT 或者说 3000 | 打开 HTTP 服务器. |
corsAllowedOrigins | string[] | ALLOWED_ORIGINS | 允许 CORS 源( 证书启用) . |
bodyLimit | string | 10mb | 最大请求体型 . |
requestTimeout | number | 60000 | 请求超时, 以毫秒计 . |
keepAliveTimeout | number | —— 说 | 保持超时 毫秒. |
logger | string[] | LOG_LEVEL 或者说 ['log','warn','error'] | NestJS日志级别. |
swagger | object | false | 已启用的开发 | 斯瓦格配置( S)title, (中文(简体) ), description, (中文(简体) ), version, (中文(简体) ), path,默认路径 /api) (中文(简体) ). |
portRaceRecovery | boolean | environment !== "production" | 在比赛期间幸存的港口比赛 nest start --watch {\fn黑体\fs22\bord1\shad0\3ahbe\4ah00\fscx67\fscy66\2chffffff\3ch808080}在捆绑地上. |
shutdownTimeoutMs | number | 10000 | SIGTERM/SIGINT的飞行请求的宽限期. |
cluster | boolean | false | 每个可用的CPU核心运行一个工人. |
什么框架线给你
cookie-parserJSON/URL编码机身解析器,并总是text/plain解析( SDKs 监视器报告通过navigator.sendBeacon) (中文(简体) ).- 具有证书的 CORS, 加上 v4 (扩展) Express 查询解析器 。 路线
装饰
@AllowAnyOrigin()回复Access-Control-Allow-Origin: *(包括飞行前),而所有其他路线则保留原产地白名单. - 全球
ValidationPipe与transform财务报告和审定财务报表whitelist启用 . - 生产中的头盔; 开发中的Swagger UI(cookie +无记名认证).
- 全球节流器守护( 默认情况下每端点有1,000个请求 / 第二个请求) .
- 反应形状
HttpResponseInterceptor。 。 。 . - 例外过滤器按优先顺序排列: 节流器 → Prisma → 新起子 → HTTP → 包罗万象,所以每一次失败都有一个一致的错误信封.
- 收听后的内幕记者:心跳(
HEARTBEAT_*页:1 (单位:千美元)MODULE_HUB_*)和依赖性健康(HEALTH_*; 检查总是运行 POST 在端点未设置时被跳过 .
列出终点和查询管道
将查询参数翻译为 Prisma 参数的新船管:
WherePipe- 分析awhere查询参数进入 Prisma 过滤器.OrderByPipe——解析顺序参数.SelectIncludePipe- 剖析select编号 :include参数.CursorPipe编号 :CursorSlugPipe——按键集(cursor)发卡参数.
共用的DTO(CommonListRequestDto, (中文(简体) ), CommonListResponseDto, (中文(简体) ),
CommonGetByStringIdRequestDto, (中文(简体) ), CommonGetByNumberIdRequestDto保存列表
各个模块的终点一致。 这个 @Cookies() 参数装饰器
提供对请求 cookie 的打入.
环境变量
| 变量 | 用于 |
|---|---|
ENVIRONMENT | development 或者说 production。 。 。 . |
PORT | HTTP 听端口. |
ALLOWED_ORIGINS | 逗号分离的 CORS 源列表 . |
LOG_LEVEL | 以逗号分隔的NestJS日志级别(例如. log,warn,error) (中文(简体) ). |
MODULE_HUB_ENDPOINT | 完整报告 URL; 启用模块- hub 自动报告, 当设置在一起时 MODULE_HUB_TOKEN。 。 。 . |
MODULE_HUB_TOKEN | 托肯送入模块中枢. |
当两者 MODULE_HUB_ENDPOINT 财务报告和审定财务报表 MODULE_HUB_TOKEN 在座的有:
框架自动发送每60个启动时的完整快照和平分
秒数。 报告是火与忘却的,从来不会阻碍应用程序的启动.
相关软件包
@devbie/newbie-cli—— 说 脚手架项目和从新单元注册处安装模块.@devbie/heartbeat-sdk——框架不可知安装活性报告.@devbie/web-monitor-sdk——浏览器侧光电,AJAX,资源与JS错误报告.