Skip to content
This repository has been archived by the owner on Apr 29, 2020. It is now read-only.

Latest commit

 

History

History
97 lines (72 loc) · 1.98 KB

README.md

File metadata and controls

97 lines (72 loc) · 1.98 KB

Express Atlas

A simple and easy-to-use routing wrapper for Express built on directory and file pattern recognition

  • Works with both ES6 and CommonJS

Installation

$ npm install express-atlas

Documentation

Initialization

Without Mongoose

import express from 'express'
import AtlasRouter from 'express-atlas'

const app = express()

new AtlasRouter({
  controllers: './controllers' // Path to controllers directory
  express: app
})

With Mongoose

All Mongoose models will automatically be imported

import express from 'express'
import AtlasRouter from 'express-atlas'
import mongoose from 'mongoose'

const app = express()

new AtlasRouter({
  controllers: './controllers' // Path to controllers directory
  express: app,
  mongoose: ['./models', mongoose] // arg1 path to models, arg2 mongoose module itself
})

Routes

Recognition is based on:

  • Directories
  • Filename
  • Params
  • Method

Incase of having multiple route names where a post and get request is being called, it's separated by the route extension instead of method: 'post'

  • {root} > controllers > auth > login.js Will become: www.example.com/auth/login

  • {root} > controllers > auth > login-post.js Will become the same, but with a post request

  • {root} > controllers > api > index.js Will become: www.example.com/api

Routes without Mongoose

export default {
  method: 'get', // request type

  action: function (req, res) { // action to be called
    ...
  }
}

Routes with Mongoose

export default {
  method: 'get', // request type
  params: ':title', // params
  model: 'News' // Mongoose model name

  action: function (req, res, next, News) { // action to be called
    const {title} = req.params

    News.findOne({title: title}, (err, data) => {
      if (err) throw err

      if (data) {
        res.json(data)
      } else {
        res.send(`Nothing find for: ${title}`)
      }
    })
  }
}