@gidea/nest-common
v0.0.3
Published
Shared NestJS building blocks for WeChat mini-program backends
Readme
@gidea/nest-common
面向微信小程序后端的 NestJS 通用能力库,提供装饰器、守卫、过滤器、拦截器、日志、中间件等,可与 NestMiniappModule 一键接入。
安装
npm i @gidea/nest-common
# 或
pnpm add @gidea/nest-commonPeer 依赖:需在业务项目中安装 @nestjs/common、@nestjs/core(>=10),以及 reflect-metadata、rxjs。若使用 JWT 守卫,需安装 @nestjs/jwt。
快速使用
在根模块中引入 NestMiniappModule,即可全局注册:
- AppLogger:可注入的日志服务(TRANSIENT)
- HttpExceptionFilter:统一 HTTP 异常与错误码响应
- LoggingInterceptor:请求/响应日志
- OpenIdGuard:基于 openid 的鉴权守卫(需配合小程序登录)
import { Module } from '@nestjs/common'
import { NestMiniappModule } from '@gidea/nest-common'
@Module({
imports: [NestMiniappModule],
// ...
})
export class AppModule {}导出内容
模块
NestMiniappModule:一键注册上述全局能力
装饰器
@Public():标记接口无需鉴权(跳过 OpenIdGuard)@OpenId():在 handler 参数上注入当前用户的 openid
守卫
OpenIdGuard:校验请求中的 openid(Header/Query),未通过返回 401ApiKeyGuard:API Key 校验,可用于内部或管理接口JwtGuard:JWT 鉴权(依赖@nestjs/jwt,可选)
过滤器 / 拦截器 / 中间件
HttpExceptionFilter:将异常转为统一{ code, message, data }响应LoggingInterceptor:请求开始与结束的日志RequestIdMiddleware:为请求注入 requestId(需自行注册)
常量
HTTP_STATUS、ERROR_CODE、ERROR_MSG:状态码与错误码AUTH_HEADER、AUTH_BEARER_PREFIX、QUERY_TOKEN_KEY:鉴权相关常量
工具与类型
getBearerToken(request):从请求中解析 Bearer tokentoNumber(value, default?):安全转数字AppLogger:日志服务IApiResult、IApiError、IRequestWithOpenId等类型
脚本
pnpm run build # 构建 ESM + CJS + 类型
pnpm run dev # 监听源码变更并构建
pnpm run typecheck # 仅类型检查License
MIT
