Skip to content

jobream/api-server-nodejs

This branch is 46 commits behind app-generator/api-server-nodejs:master.

Folders and files

NameName
Last commit message
Last commit date

Latest commit

author
App Generator
Mar 18, 2022
1ffda60 · Mar 18, 2022
Jul 4, 2021
Jul 20, 2021
Jul 20, 2021
Jul 20, 2021
Jul 20, 2021
Jul 20, 2021
Jul 20, 2021
Jul 20, 2021
Jul 20, 2021
Jul 20, 2021
Mar 18, 2022
Jul 20, 2021
Jul 20, 2021
Jul 20, 2021
Jul 20, 2021
Jul 20, 2021
Jul 20, 2021

Repository files navigation

Express / Nodejs Starter with JWT authentication, and SQLite persistance - Provided by AppSeed App Generator. Authentication Flow uses json web tokens via Passport library - passport-jwt strategy.


Features:

  • API Definition - the unified API structure implemented by this server
  • Simple, intuitive codebase - can be extended with ease.
  • TypeScript, Joy for validation
  • Stack: NodeJS / Express / SQLite / TypeORM
  • Auth: Passport / passport-jwt strategy

Tested with:

NodeJS NPM YARN Status
v16.13.0 v8.1.0 v1.22.5 ✔️
v14.15.0 v6.14.8 v1.22.5 ✔️
v12.22.0 v6.14.11 v1.22.5 ✔️

Can be used with other React Starters for a complete Full-Stack experience:

React Node JS Berry React Node Soft Dashboard React Node Datta Able
React Node JS Berry React Node Soft Dashboard React Node Datta Able

Nodejs API Server - Open-source Nodejs Starter provided by AppSeed.


✨ Requirements


✨ How to use the code

Step 1 - Clone the project

$ git clone https://github.com/app-generator/api-server-nodejs.git
$ cd api-server-nodejs

Step 2 - Install dependencies via NPM or Yarn

$ npm i
// OR
$ yarn

Step 3 - Run the SQLite migration via TypeORM

$ yarn typeorm migration:run

Step 4 - Start the API server (development mode)

$ npm run dev
// OR
$ yarn dev

Step 5 - Production Build (files generated in build directory)

$ npm run build
// OR
$ yarn build

Step 6 - Start the API server for production (files served from build/index.js)

$ npm run start
// OR
$ yarn start

The API server will start using the PORT specified in .env file (default 5000).


✨ Codebase Structure

< ROOT / src >
     | 
     |-- config/                              
     |    |-- config.ts             # Configuration       
     |    |-- passport.ts           # Define Passport Strategy             
     | 
     |-- migration/
     |    |-- some_migration.ts     # database migrations
     |
     |-- models/                              
     |    |-- activeSession.ts      # Sessions Model (Typeorm)              
     |    |-- user.ts               # User Model (Typeorm) 
     | 
     |-- routes/                              
     |    |-- users.ts              # Define Users API Routes
     | 
     | 
     |-- index.js                   # API Entry Point
     |-- .env                       # Specify the ENV variables
     |                        
     |-- ************************************************************************

✨ SQLite Path

The SQLite Path is set in .env, as SQLITE_PATH


✨ Database migration

Generate migration:

$ yarn typeorm migration:generate -n your_migration_name

run migration:

$ yarn typeorm migration:run

✨ API

For a fast set up, use this POSTMAN file: api_sample

Register - api/users/register

POST api/users/register
Content-Type: application/json

{
    "username":"test",
    "password":"pass", 
    "email":"test@appseed.us"
}

Login - api/users/login

POST /api/users/login
Content-Type: application/json

{
    "password":"pass", 
    "email":"test@appseed.us"
}

Logout - api/users/logout

POST api/users/logout
Content-Type: application/json
authorization: JWT_TOKEN (returned by Login request)

{
    "token":"JWT_TOKEN"
}

✨ Run the Tests

yarn test


✨ Credits

This software is provided by the core AppSeed team with an inspiration from other great NodeJS starters:



Node JS API Server - provided by AppSeed App Generator

About

Nodejs API Server - Express / SQLite / TypeORM | AppSeed

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • TypeScript 91.3%
  • JavaScript 8.0%
  • Shell 0.7%