66 lines
2.1 KiB
Markdown
66 lines
2.1 KiB
Markdown
# 
|
|
|
|
> ### Example Node.Js (Koa.js + Knex) codebase containing real world examples (CRUD, auth, advanced patterns, etc) that adheres to the [RealWorld](https://github.com/gothinkster/realworld-example-apps) spec and API.
|
|
|
|
This repo is functionality complete — PRs and issues welcome!
|
|
|
|
This codebase was created to demonstrate a fully fledged fullstack application built with **Koa.js + Knex** including CRUD operations, authentication, routing, pagination, and more.
|
|
|
|
We've gone to great lengths to adhere to the **Koa.js + Knex** community styleguides & best practices.
|
|
|
|
For more information on how to this works with other frontends/backends, head over to the [RealWorld](https://github.com/gothinkster/realworld) repo.
|
|
|
|
# Getting started
|
|
|
|
## Installation
|
|
1. Instal [Node.JS](https://nodejs.org/en/download/package-manager/) latest version
|
|
2. Clone this repo
|
|
3. Install dependencies, just run in project folder: `npm i` or `yarn`
|
|
|
|
## Usage
|
|
1. run `npm start` to start server
|
|
|
|
## Testing
|
|
1. run `npm test` for tests
|
|
|
|
## Server Configuration (optional)
|
|
|
|
You can use `.env` file, to configure project like this:
|
|
|
|
```
|
|
NODE_ENV = development
|
|
PORT = 3000
|
|
SECRET = secret
|
|
JWT_SECRET = secret
|
|
DB_CLIENT = sqlite3
|
|
#DB_CONNECTION = postgres://user:password@localhost:5432/db_name
|
|
```
|
|
|
|
you can just copy `.example-env`
|
|
|
|
## Variables description
|
|
|
|
`NODE_ENV` - specify env: development/production/test. `development` by default
|
|
|
|
`NODE_PORT` - specify port: `3000` by default
|
|
|
|
`NODE_SECRET` - custom secret for generating passwords. `secret` by default
|
|
|
|
`JWT_SECRET` - custom secret for generating jwt tokens. `secret` secret by default
|
|
|
|
`DB_CLIENT` - database to use. `pg` - postgress or `sqlite3`. `sqlite3` by default
|
|
|
|
`DB_CONNECTION` - db connection string for `postgress` database.
|
|
|
|
|
|
## Fixtures (optional)
|
|
|
|
1. load fixtures: `npm run db:load` (it uses settings from `.env`). Don't forget to set `NODE_ENV`.
|
|
|
|
## Styleguide
|
|
[](https://github.com/feross/standard)
|
|
|
|
# How it works
|
|
|
|
> Describe the general architecture of your app here
|