hrms-api-log/README.md
2024-07-10 17:53:27 +07:00

43 lines
3 KiB
Markdown

# TSOA Node.js Template (CJS)
- โปรเจคนี้เป็นโครงโปรเจคสามารถโคลนและนำไปปรับใช้ได้ทันที
- โปรเจคนี้ใช้ `tsoa` `express` และ `swaggerui` เป็นหลัก
- โปรเจคนี้มีการตั้งค่า `docker` และ `prettier` ให้พร้อมแล้ว
## Step to Reproduce
> [!TIP]
>
> ในที่นี้จะใช้ `pnpm` ที่ดีกว่า `npm` แทน โดย `pnpm add` จะมีค่าเท่ากับ `npm i`
>
> หากต้องการใช้ `pnpm` สามารถลงได้โดย `npm i -g pnpm`
>
> ข้อมูลเพิ่มเติม: [pnpm](https://pnpm.io/installation)
1. เตรียมและติดตั้งแพคเกจ
- `pnpm init`
- `pnpm add -D @types/cors @types/express @types/node @types/swagger-ui-express nodemon prettier ts-node typescript` แพคเกจนี้เป็นเพียงแพคเกจทีจะถูกใช้เฉพาะตอนพัฒนาระบบเท่านั้น และไม่ถูกนำไปใช้เพื่อให้ระบบสามารถทำงานได้ แพคเกจเหล่านี้จะไม่ถูกติดตั้งเมื่อนำไปใช้งานจริงบน production
- `pnpm add @tsoa/runtime cors dotenv express fast-jwt mysql2 promise.any reflect-metadata swagger-ui-express tsoa typeorm` แพคเกจนี้เป็นแพคเกจที่จำเป็นสำหรับการทำงานของระบบ หากไม่มีจะไม่สามารถทำให้ระบบทำงานได้เมื่อติดตั้งไม่ครบ
2. ตั้งค่าโปรเจค
- [.dockerignore](./.dockerignore)
- [.env](./.env.example)
- [.gitignore](./.gitignore)
- [.prettierignore](./.prettierignore)
- [.prettierrc](./.prettierc)
- [Dockerfile](./Dockerfile)
- [nodemon.json](./nodemon.json)
- [package.json](./package.json)
- [tsconfig.json](./tsconfig.json)
- [tsoa.json](./tsoa.json)
3. ขึ้นโครงแอปพลิเคชัน
- [src/app.ts](./src/app.ts)
- [src/database/data-source.ts](./src/database/data-source.ts)
- [src/middlewares/auth.ts](./src/middlewares/auth.ts)
- [src/middlewares/error.ts](./src/middlewares/error.ts)
- [src/interfaces/http-error.ts](./src/interfaces/http-status.ts)
- [src/interfaces/http-status.ts](./src/interfaces/http-error.ts)
- [src/controllers/my-controller.ts](./src/controllers/my-controller.ts)
> [!CAUTION]
>
> การตั้งค่า [src/database/data-source.ts](./src/database/data-source.ts) ก่อนขึ้น production ปรับ `synchronize` เป็น `false` และเริ่มทำ migrations