Node.js示例API:TypeScript、PostgreSQL、Docker Compose实践

Node.js示例API:TypeScript、PostgreSQL、Docker Compose实践

这个示例项目演示了如何使用TypeScript、PostgreSQL、Docker Compose以及六边形架构、领域驱动设计 (DDD)、ESLint和Jest测试构建Node.js API。

准备工作

  1. 创建.env文件,参考提供的.env.example文件进行配置。
  2. 启动Docker服务。
  3. 安装项目依赖。
  4. (可选)运行数据库迁移脚本,创建数据库结构和两个初始用户。

启动Docker服务

make up
# 或
docker-compose up -d 

注意: 确保本地服务(例如PostgreSQL)已停止,避免端口冲突。

停止Docker服务

make down
# 或
docker-compose down

运行项目

make run-dev
# 或
docker-compose exec app npm run dev
zip
example_node_api-master.zip 预估大小:72个文件
folder
example_node_api-master 文件夹
file
.eslintrc.json 6KB
file
.gitignore 36B
file
package.json 2KB
file
Makefile 2KB
file
package-lock.json 377KB
folder
src 文件夹
folder
app 文件夹
folder
boundedContext 文件夹
folder
backoffice 文件夹
folder
users 文件夹
folder
domain 文件夹
folder
valueObjects 文件夹
file
user.ts 772B
file
userId.ts 294B
file
userName.ts 181B
folder
exceptions 文件夹
file
userAlreadyExists.ts 418B
file
userNotFound.ts 414B
file
userIdNotValid.ts 361B
folder
models 文件夹
file
user.model.ts 61B
folder
repositories 文件夹
file
userRepository.ts 328B
folder
infrastructure 文件夹
folder
persistence 文件夹
folder
typeORM 文件夹
file
userEntity.ts 320B
file
userRepositoryTypeORM.ts 2KB
folder
application 文件夹
file
userDelator.ts 595B
file
userCreator.ts 613B
file
userUpdator.ts 603B
file
userSearcherOne.ts 630B
file
userSearcher.ts 386B
folder
shared 文件夹
folder
domain 文件夹
folder
valueObjects 文件夹
file
baseEnum.ts 90B
file
uuid.ts 675B
file
baseInt.ts 232B
file
baseString.ts 318B
file
collection.ts 360B
folder
exceptions 文件夹
file
base.ts 265B
file
uuidNotValid.ts 313B
folder
aggregate 文件夹
file
aggregateRoot.ts 41B
file
domainError.ts 393B
folder
criteria 文件夹
file
filter.ts 1KB
file
filterOperator.ts 541B
file
filters.ts 474B
file
criteria.ts 1KB
file
orderType.ts 346B
file
orderBy.ts 157B
file
order.ts 1KB
file
filterField.ts 161B
file
filterValue.ts 161B
folder
application 文件夹
folder
backoffice 文件夹
folder
controllers 文件夹
folder
users 文件夹
file
userCreateController.ts 1KB
file
userSearchController.ts 967B
file
userUpdateController.ts 1KB
file
userSearchOneController.ts 978B
file
userDeleteController.ts 893B
folder
routes 文件夹
file
userRoutes.ts 2KB
file
index.ts 302B
folder
shared 文件夹
folder
framework 文件夹
folder
utils 文件夹
file
asyncHandler.ts 251B
folder
constants 文件夹
file
http_codes.ts 139B
folder
middlewares 文件夹
file
exceptionHandler.ts 603B
file
index.ts 933B
folder
databases 文件夹
folder
backoffice 文件夹
folder
migrations 文件夹
file
1602523835572-CreateTableUsers.ts 600B
folder
seeds 文件夹
file
1602525291328-InsertUsers.ts 1KB
file
tsconfig.json 271B
folder
test 文件夹
folder
e2e 文件夹
folder
backoffice 文件夹
folder
users 文件夹
file
userCreator.spec.ts 473B
folder
shared 文件夹
folder
.gitkeep 文件夹
folder
unit 文件夹
folder
backoffice 文件夹
folder
users 文件夹
folder
domain 文件夹
folder
valueObjects 文件夹
file
user.spec.ts 1KB
folder
infraestructure 文件夹
folder
persistence 文件夹
file
userRepositoryInMemory.ts 2KB
folder
aplication 文件夹
file
userDelator.spec.ts 1KB
file
userUpdator.spec.ts 1KB
file
userCreator.spec.ts 2KB
file
userSearcherOne.spec.ts 1KB
file
userSearcher.spec.ts 1KB
folder
shared 文件夹
folder
domain 文件夹
folder
valueObjects 文件夹
file
baseString.spec.ts 846B
file
uuid.spec.ts 1KB
folder
exceptions 文件夹
file
base.spec.ts 633B
file
jest.config.js 358B
file
tsconfig.json 5KB
file
docker-compose.yml 916B
file
README.md 4KB
file
.env.example.prod 436B
file
.env.example.dev 432B
file
ormconfig.js 1KB
folder
docker 文件夹
folder
postgres 文件夹
file
extension-uuid.sql 43B
...
zip 文件大小:138.45KB