Skip to content
Project template for an ExpressJS application
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
generators
tests
.editorconfig
.gitignore
.travis.yml
README.md
_config.yml
package-lock.json
package.json
requirements.txt

README.md

Generator Expressjs Rest

Build Status

Features

  • User Registration
  • Basic Authentication with username and password
  • Admin use react-admin
  • Oauth 2.0 Authentication
    • Facebook
    • Google
  • Upload Photo to S3 amazon
  • Docker

Prerequisites

Installation

Fist, install Yeoman and generator-expressjs-rest using npm (we assume you have pre-installed node.js).

npm install -g yo
npm install -g generator-expressjs-rest

Generators

Then, you can use yo to generate your project.

yo expressjs-rest # generate a new project
yo expressjs-rest:api # generate a new api endpoint inside your project

Commands

After you generate your project, these commands.

cd your-project-name
mv .env.example .env

docker-compose build
docker-compose run --rm client yarn build
docker-compose up

Playing locally

Deploy

Directory structure

Overview

src/
├─ api/
│  ├─ user/
│  │  ├─ controller.js
│  │  ├─ index.js
│  │  ├─ index.test.js
│  │  ├─ model.js
│  │  └─ model.test.js
│  └─ index.js
├─ services/
│  ├─ express/
│  ├─ facebook/
│  ├─ mongoose/
│  ├─ passport/
│  ├─ sendgrid/
│  └─ your-service/
├─ app.js
├─ config.js
└─ index.js

src/api/

Here is where the API endpoints are defined. Each API has its own folder.

src/api/some-endpoint/model.js

It defines the Mongoose schema and model for the API endpoint. Any changes to the data model should be done here.

src/api/some-endpoint/controller.js

This is the API controller file. It defines the main router middlewares which use the API model.

src/api/some-endpoint/index.js

This is the entry file of the API. It defines the routes using, along other middlewares (like session, validation etc.), the middlewares defined in the some-endpoint.controller.js file.

services/

Here you can put helpers, libraries and other types of modules which you want to use in your APIs.

TODO

  • Support optional phone authentication
  • Support optional email confirmation process
  • Support Twitter and other social login methods
  • Socket.io support

PRs are welcome.

Credits

@minhuyen and all contributors

License

MIT © minhuyen

You can’t perform that action at this time.