Skip to main content

API Server Node JS

Open-source Node JS API Server enhanced with JWT Authentication and SQLite storage.

Free API Server coded on top of Express / Node JS with SQLite persistence and JWT authentication via Passport library - passport-jwt strategy.

Version

v1.0.1, release date 2022-06-02

API Methods - for full description please access API Unified Definition

  • USERS API:
    • /api/users/register: create a new user
    • /api/users/login: authenticate an existing user
    • /api/users/logout: delete the associated JWT token
    • /api/users/checkSession: check an existing JWT Token for validity
    • /api/users/edit - edit the information associated with a registered user

Node JS API Server - Open-source Product.

✨ Tests Matrix

NodeJSNPMYARNStatus
v17.0.0v8.11.0v1.22.18✔️
v16.15.1v8.11.0v1.22.18✔️
v16.13.0v8.1.0v1.22.5✔️

✨ How to use the code

👉 Step 1 - Clone the sources

$ 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

$ yarn typeorm migration:run

👉 Step 4 - Start the API server (development mode)

$ npm dev
// OR
$ yarn dev

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

$ npm build
// OR
$ yarn build

👉 Step 6 - Start the API server (production mode)

$ npm 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

✨ Compatible Fullstack Products

The product can be used as a standalone server but also as an authentication server for React, Vue products. Such a product already configured with Django API Server is React Datta Able, an open-source React Dashboard.

React Datta Able - Open-Source Dashboard.