minipress

0.0.2 • Public • Published

minipress

Minimal routing and config for Express

Create 1 file app.js

  require('minipress')('router.json', 'config.json');

routing

Create 1 file router.json

{
  
  "GET /user/:name": [
    "middlewares/check_logged_in",
    "controllers/user.get"
  ],

  "POST /user": "controllers/user.create",

  "GET /login": "controllers/login.render",

  "POST /login": "controllers/login.auth",

  "GET /logout": "controllers/logout"
  
}

Create the associated controller/middleware files, examples:

File middlewares/check_logged_in.js

module.exports = function(req, res, next) {

  if (req.session.isLogged)
    next();
  else
    res.send('Please <a href="/login">login</a>');

};

File controllers/user.js

var User = require('../models/user');

exports.get = function(req, res) {
  
  User.get(req.params.name, function(err, user) {
    if (err || !user) {
      res.send('Could not find user: ' + req.params.name);
    } else {
      res.json(user);  
    }
  });
  
};

exports.create = function(req, res) {

  User.create({
    name: req.body.name,
    password: req.body.password
  }, function(err) {
    if (err)
      res.send('Invalid user');
    else
      res.send('User created');
  });

};

config

Create 1 file config.json

[
  "config/init",
  "config/db",
  "config/logger",
  "config/views",
  "config/session",
  "config/body_parser",
  "config/static",
  "config/error_handler"
]

Create the associated config files, example: config/logger

var morgan = require('morgan');

module.exports = function(app, next) {

  if (app.get('env') === 'production')
    app.use(morgan('common'));
  else
    app.use(morgan('dev'));

  next();

};

Package Sidebar

Install

npm i minipress

Weekly Downloads

1

Version

0.0.2

License

MIT

Last publish

Collaborators

  • jie