NestJS-Boilerplate-Microservice微服务样板框架

nestjs 的微服务样板项目,挺适合喜欢事件驱动架构、想实践DDDCQRS的朋友。项目用TypeScript写的,架构比较清晰,跑在Docker容器里也方便部署。你只要跑个脚本就能把MySQLEventStore啥的全都搭好,挺省事。

本地开发也照顾到了,两个模式都支持:一个是直接在你电脑上起服务,一个是全都跑进 Docker 容器里。用cd scripts/ && sh build.sh就能一步到位,把所有依赖容器都建起来,还自动建网络,省得你手动折腾。

架构设计上用的是领域驱动设计那一套,命令查询职责分离(CQRS)也做了,还整合了EventStore,事件回放和追溯都方便。你要是之前用过 Axon 或 Spring 体系,转过来应该也能快速上手。

项目文档虽然有点粗糙,但看着跑起来还是没啥问题,逻辑比较清楚。建议你先从本地运行开始熟悉逻辑,再去玩容器化,毕竟第一次用 EventStore 的人会有点懵。

如果你正好在找一个NestJS写的微服务骨架,既能本地跑也能丢到容器里,又贴合 DDD 那一套思想,试试这个还挺不错的。

zip
nestjs-boilerplate-microservice-master.zip 预估大小:92个文件
folder
nestjs-boilerplate-microservice-master 文件夹
file
.releaserc.json 644B
folder
docs 文件夹
file
guidelines.md 4KB
file
development.md 2KB
file
package.json 6KB
file
Jenkinsfile 7KB
folder
test 文件夹
file
jest-e2e.json 183B
file
app.e2e-spec.ts 654B
file
.prettierrc 51B
file
Dockerfile 877B
file
LICENSE 1KB
file
package-lock.json 741KB
file
.env.example 630B
folder
src 文件夹
file
shared.module.ts 663B
folder
shared 文件夹
folder
swagger 文件夹
file
setup.ts 662B
folder
grpc 文件夹
file
setup.ts 546B
folder
typeorm 文件夹
folder
strategies 文件夹
file
snake-naming.strategy.ts 2KB
folder
services 文件夹
file
generator.service.ts 265B
file
logger.service.ts 1KB
file
aws-s3.service.ts 1KB
file
config.service.ts 6KB
file
validator.service.ts 291B
file
boilerplate.polyfill.ts 448B
folder
exceptions 文件夹
file
file-not-image.exception.ts 338B
file
user-not-found.exception.ts 219B
file
app.module.ts 1KB
file
main.ts 3KB
folder
migrations 文件夹
file
1569232747766-CreateUsersTable.ts 1006B
folder
providers 文件夹
file
utils.service.ts 600B
file
event-bus.provider.ts 2KB
folder
interceptors 文件夹
file
logging.interceptor.ts 2KB
folder
common 文件夹
folder
dto 文件夹
file
abstract.dto.ts 212B
file
abstract.entity.ts 542B
file
app.controller.ts 2KB
folder
interfaces 文件夹
file
IFile.ts 173B
file
aws-config.interface.ts 134B
file
swagger-config.interface.ts 175B
file
app.service.ts 170B
folder
filters 文件夹
file
rpc-exception.filter.ts 355B
file
http-exception.filter.ts 2KB
file
app.controller.spec.ts 732B
folder
modules 文件夹
folder
users 文件夹
folder
commands 文件夹
folder
handlers 文件夹
file
welcome-user.handler.ts 853B
file
update-user.handler.ts 851B
file
create-user.handler.ts 867B
file
index.ts 368B
file
delete-user.handler.ts 850B
folder
impl 文件夹
file
delete-user.command.ts 246B
file
create-user.command.ts 231B
file
welcome-user.command.ts 145B
file
update-user.command.ts 198B
folder
repository 文件夹
file
user.repository.ts 1KB
folder
controllers 文件夹
file
users.controller.ts 2KB
folder
queries 文件夹
folder
handlers 文件夹
file
get-user.handler.ts 955B
file
get-users.handler.ts 733B
file
index.ts 173B
folder
impl 文件夹
file
get-users.query.ts 88B
file
get-user.query.ts 249B
folder
dtos 文件夹
file
user-register.dto.ts 428B
file
user.dto.ts 638B
file
user-id-request-params.dto.ts 193B
folder
graphql 文件夹
file
users.resolver.ts 422B
file
users.graphql 173B
file
users.module.ts 1KB
folder
events 文件夹
folder
handlers 文件夹
file
user-created.handler.ts 384B
file
user-updated.handler.ts 384B
file
user-deleted.handler.ts 384B
file
index.ts 378B
file
user-welcomed.handler.ts 391B
folder
impl 文件夹
file
abstract.event.ts 289B
file
user-created.event.ts 114B
file
user-updated.event.ts 114B
file
user-welcomed.event.ts 115B
file
user-deleted.event.ts 114B
folder
services 文件夹
file
users.service.ts 1KB
folder
sagas 文件夹
file
users.sagas.ts 789B
folder
entities 文件夹
file
user.entity.ts 1KB
file
.eslintrc.js 1KB
file
makefile 439B
file
tsconfig.json 524B
file
.gitignore 7KB
file
CHANGELOG.md 2KB
file
commitlint.config.js 64B
file
.npmrc 19B
file
README.md 4KB
file
.eslintignore 35B
folder
scripts 文件夹
file
cleanup.sh 974B
folder
dev 文件夹
file
envVar.sh 789B
file
Dockerfile 227B
file
.dockerignore 93B
file
build.sh 6KB
file
.editorconfig 268B
file
ormconfig.js 763B
file
tsconfig.build.json 97B
...
zip 文件大小:205.25KB