Uh oh!
There was an error while loading.Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork56
The best practice of building Koa2 with TypeScript
License
unix/koa-ts
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
The best practice of building Koa2 with TypeScript.中文
Run
npm init koa-ts
Install dependencies:
yarn
Rename
.env.example
to.env
, and runprisma db push
to synchronize the data modelStart the server:
yarn dev
. visit:http://127.0.0.1:3000/apis/sessions
(Optional) the project has built-in a docker compose, run
yarn dev:db
to run database automatic.
├── app│ ├── controllers --- server controllers│ ├── helpers --- helper func (interceptor / error handler / validator...)│ ├── jobs --- task (periodic task / trigger task / email server...)│ ├── entities --- database entities/models│ └── services --- adhesive controller and model├── config│ ├── constants --- environment variable│ ├── koa.middlewares --- middlewares for Koa│ ├── routing.middlewares --- middlewares for Routing Controller│ ├── routing.options --- configs for Routing Controller│ ├── bootstrap --- lifecycle│ └── interceptors --- global interceptor│ └── utils --- pure functions for help└── test --- utils for testcase├── .env --- environment file
Separation configuration and business logic.
Export scheme model and interface, follow style of TypeScript.
Test cases and lint configuration.
The best practice for Dependency Injection in Koa project.
Get constraints on your data model with Prisma.
TypeScript hotload.
app.ts
-> collect env varsconstants
-> collect env filesvariables.env
envs ready, call
bootstrap.before()
lift
routing-controllers
-> lift Koa middlewares -> registerContainer
for DIstart Koa & invoke
bootstrap.after()
after startup
The project uses Prisma as the intelligent ORM tool by default. SupportsPostgreSQL
,MySQL
andSQLite
.
- You can change the data type and connection method in the
.env
file - After each modification to file
/prisma/schema.prisma
, you need to runprisma migrate dev
to migrate the database. - After each modification to file
/prisma/schema.prisma
, you need to runprisma generate
to sync types.
When nodejs is running,ENV
does not meanNODE_ENV
:
- After NodeJS project is built, we always run it as
NODE_ENV=PRODUCTION
, which may affect some framework optimizations. NODE_ENV
only identifies the NodeJS runtime, independent of the business.- You should use
ENV
to identify the environment.
For the data settings of each environment, you can refer to the following:
Development Mode (
ENV=development
): read configurations fromconfigs/constants/development.ts
file, but it will still be overwritten by.env
file.Production Mode (
ENV=production
): read configurations fromconfigs/constants/production.ts
file, but it will still be overwritten by.env
file.
This project is licensed under the MIT License. See theLICENSE file for more info.
About
The best practice of building Koa2 with TypeScript
Topics
Resources
License
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Sponsor this project
Uh oh!
There was an error while loading.Please reload this page.
Packages0
Uh oh!
There was an error while loading.Please reload this page.
Contributors5
Uh oh!
There was an error while loading.Please reload this page.