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 - API Interface Descriptor: POSTMAN Collection
Can be used with other UI projects for a complete fullstack experience
- React Berry Dashboard - open-source sample
- React Datta Dashboard - open-source sample
- React Datta Dashboard PRO - commercial fullstack product
Support:
- Github (issues tracker), Email: support @ appseed.us
- Discord: LIVE Support (registered AppSeed Users)
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 dev
// OR
$ yarn dev
Step #5 - Production Build (files generated in build
directory)
$ npm build
// OR
$ yarn build
Step #6 - Start the API server for production (files served from build/index.js
)
$ npm start
// OR
$ yarn start
The API server will start using the PORT
specified in .env
file (default 5000).
< 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
|
|-- ************************************************************************
The SQLite Path is set in .env
, as SQLITE_PATH
Generate migration:
$ yarn typeorm migration:generate -n your_migration_name
run migration:
$ yarn typeorm migration:run
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"
}
This software is provided by the core AppSeed team with an inspiration from other great NodeJS starters:
- Initial verison - coded by Teo Deleanu
- Hackathon Starter - A truly amazing boilerplate for Node.js apps
- Node Server Boilerplate - just another cool starter
- React NodeJS Argon - released by Creative-Tim and ProjectData
Nodejs API Server - provided by AppSeed App Generator