ex2

0.0.6 • Public • Published

See CHANGE LOG for notable changes.

EX2, Yuan-Express-Expand, another practice on Express

Genenally, we create a new application based on Express via express-generator. The output of express-generator is regarded as the best practice of Express. However, I need something more convenient. So, yuan-express-expand is created.

Start Up

# Install. 
npm install -g express-generator
npm install -g ex2
 
# Create a new application based on Express. 
express myExpressApp

Then, edit ./app.js to apply yuan-express-expand in your Express application.

// app.js
// ...
// Require the module in the begining.
const ex2 = require('ex2');
 
// ...
// Delete the code about routes.
 
// var routes = require('./routes/index');
// var users = require('./routes/users');
// ...
// app.use('/', routes);
// app.use('/users', users);
 
// Then, replaced with ex2 code.
ex2(app).route('./routes');

Start the app, everything is OK as it has been before ex2 used:

# Start HTTP server listening at 8080. 
PORT=8000 bin/www
 
open http://localhost:8080/users/

ex2(app)

This method will return an wrapped instance of Express.application.

Function: ex2(app).route()

Recursively find javascript files in specified directory, and use them as router for the same URL pathname.

ex2(app).route('./routes', options);

In the previous case, e.g., if ./routes/users.js exists, it will be used as router for URL pathname /users. Same as,

var users = require('./routes/users');
app.use('/users', users);

If one more router added to ./routes, no more statement needed to modify app as what has to be done without ex2.

A javascript file in ./routes directory may export a normal Express.Router instance as usual. It can also be in more simple form, e.g.

// Not necessary to be initialized by express.Router().
module.exports = {
    // Use "METHOD: FUNCTION" instead of execute the METHOD('/', FUNCTION) function.
    get: function(res, req, next) {
        // ...
    },
 
    post: function(res, req, next) {
        // ...
    }
};

Options used in ex2(app).route() may include:

  • index
    default: "index"
    Javascript file with name "index" will be used as default router instead of router for ".../index".

References

Readme

Keywords

Package Sidebar

Install

npm i ex2

Weekly Downloads

4

Version

0.0.6

License

SEE LICENSE IN License.txt

Last publish

Collaborators

  • youngoat
  • youngoat.elite