marcus-sa / express-atlas

A simple routing wrapper for Express built on directory and file pattern recognition with easy import of mongoose models
https://npmjs.com/package/express-atlas
MIT License
1 stars 0 forks source link
express mongoose-model nodejs pattern-recognition routing

Express Atlas

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

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:

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'

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}`)
      }
    })
  }
}