suweya / typescript-node-koa-realworld-example-app

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

RealWorld Example App

Example Node.Js (Koa.js + Knex) codebase containing real world examples (CRUD, auth, advanced patterns, etc) that adheres to the RealWorld 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 repo.

Getting started

Installation

  1. Instal Node.JS latest version
  2. Clone this repo
  3. Install dependencies, just run in project folder: npm i or yarn

Usage

  1. run npm run transpile:w to watching and transpiring ts to js files
  2. 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

Standard - JavaScript Style Guide

How it works

Describe the general architecture of your app here

About


Languages

Language:TypeScript 93.3%Language:JavaScript 6.7%