个人后端接口模板
- Nestjs
- MongoDB
- Radis
Nest framework TypeScript starter repository.
$ pnpm install
# development
$ pnpm run start
# watch mode
$ pnpm run start:dev
# production mode
$ pnpm run start:prod
# unit tests
$ pnpm run test
# e2e tests
$ pnpm run test:e2e
# test coverage
$ pnpm run test:cov
$ pnpm run build
使用 @vercel/ncc
打包(打包文件会包含 node_modules
,nestjs 默认打包不包含 node_modules
)
如果项目包含了二进制文件,请使用对应的平台编译,ncc不会处理跨平台
如果需要 linux 版本,windows 平台可以安装 wsl
,然后在 wsl
中执行
ncc:build
会重新下载依赖并打包
$ pnpm i -g @vercel/ncc
$ pnpm run ncc:build
添加 prod.env
文件,按照 .env.example
文件填写,redis 配置如下
redis_host='redis'
redis_port=6379
redis_password=''
redis_db=0
redis_ttl=60
mongo docker 配置按需求自行添加,或单独配置 mongo 地址
运行
docker-compose up
重新编译
docker-compose up --build
WEB /doc
JSON /doc-json
YAML /doc-yaml
获取接口文档 json 文件
main.ts
下加入
const document = SwaggerModule.createDocument(app, config);
+fs.writeFileSync('./api-json.json', JSON.stringify(document));
nest g res modules/xxx
- 启动报错,检查 redis 配置,
redis-cli shutdown
关闭 redis 服务,redis-server
启动 redis 服务
> Error: connect ECONNREFUSED ::1:6379
at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1494:16)
> redis-cli shutdown
> redis-server
- 查询中间件
import { baseSchemaPreFind } from 'src/public/schema/base.schema';
xxxSchema.pre('find', baseSchemaPreFind);
- 返回数据中不显示某些字段
import { baseSchemaToJSON } from 'src/public/schema/base.schema';
xxxSchema.methods.toJSON = baseSchemaToJSON;
Nest is MIT licensed.
- 日志 ✔️
- 注册 ✔️
- 登录 ✔️
- 权限 ✔️
- 七牛云对象存储 ✔️
- 邮件发送 ✔️
- 素材库