A simple and easy-to-use routing wrapper for Express built on directory and file pattern recognition
$ npm install express-atlas
import express from 'express'
import AtlasRouter from 'express-atlas'
const app = express()
new AtlasRouter({
controllers: './controllers' // Path to controllers directory
express: app
})
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
})
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'
{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
export default {
method: 'get', // request type
action: function (req, res) { // action to be called
...
}
}
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}`)
}
})
}
}