https://github.com/nemtsov/express-starter
Express Starter
https://github.com/nemtsov/express-starter
docker express jwt-authentication nodejs postgresql
Last synced: 3 months ago
JSON representation
Express Starter
- Host: GitHub
- URL: https://github.com/nemtsov/express-starter
- Owner: nemtsov
- License: mit
- Created: 2016-02-01T19:33:12.000Z (over 10 years ago)
- Default Branch: master
- Last Pushed: 2021-07-28T10:15:11.000Z (almost 5 years ago)
- Last Synced: 2025-05-07T05:03:28.697Z (about 1 year ago)
- Topics: docker, express, jwt-authentication, nodejs, postgresql
- Language: JavaScript
- Homepage:
- Size: 508 KB
- Stars: 14
- Watchers: 4
- Forks: 6
- Open Issues: 13
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Express Starter 
This is a starter project for the Express and Node >= 8 featuring:
- Docker
- PostgreSQL
- JWT-based authentication
- `async / await` everywhere
- Designed for ease of testing with an emphasis on "few-millisecond-fast" end-to-end tests
- Service-based folder structure (each folder in `/lib` is a separate service, with its own `index.js`, `datastore.js` [if necessary], and a web `resource.js`) for easier navigation
- Configuration is done via environment variables
The `lib/github` service is here to serve as an example of how a service
that has an http resource as well as non-trivial dependencies may be
implemented and tested.
Note: Minimum requirement is Node v8.0.0
## Usage
Development:
`docker-compose up`
Testing:
`npm test`
Check coverage:
`npm run test:cover`
Re-run tests when a file changes:
`npm run test:watch`
Production:
`npm install`
`npm start`
## Auth
Create a new user:
```
curl -i -XPOST 'http://localhost:4000/users' -H 'Content-type: application/json' -d '{"email": "e@e.com", "password": "pass"}'
```
Create a token for the user:
```
curl -i -XPOST -u 'e@e.com:pass' 'http://localhost:4000/tokens'
```
Use the token to get data:
```
curl -i 'http://localhost:4000/github/nodejs' -H 'Authorization: Bearer '
```
## License
[MIT](/LICENSE)