A boilerplate for building RESTful APIs using Node.js, PostgreSQL, koa, knex, objection.
yarn
or npm install
user
WITH PASSWORD password
database
database
to user
Install citext
extension on your database with the command CREATE EXTENSION citext;
Change name value of .env.example to .env and set the key SECRET to any value you wish
Change DATABASE_URL to postgress://user
:password
@localhost
/database
Run migrations: yarn db:migrate
Run seeds: yarn db:seed
Install Docker
docker pull redis
docker run --name your-image-name -d redis
docker start your-image-name
yarn start
or yarn dev
to start serveryarn test
├── /src
| ├── /controllers
| ├── /database
| | ├── /migrations
| | ├── /seeds
| ├── /helpers
| ├── /middleware
| ├── /models
| ├── /routes
| ├── /validators
├── /test
To use the nodemailer helper in a non-production environment, you need to set the variable in .env ALLOW_LIST
and assign an array with the domains allowed for sending e-mail. This domain must start with an @
, followed by a minimum of 2 characters, a .
and 2 characters in the end.
In case the informed email is not part of any informed domain, the email will not be sent.
ALLOWED
NOT ALLOWED
The following domains: nave.rs
and@nave
are not allowed as they do not satisfy the domain description, given above.
This project uses objection.js as ORM and knex as query builder.
In order not to use before update hooks on our models, we decided to create a function and trigger via migration, everytime you create a table with updated_at add the trigger to it. (an example is in the file: "src/database/migrations/20180910221504_init.js")
adapter