0.0.6 • Published 7 years ago

ex2 v0.0.6

Weekly downloads
10
License
SEE LICENSE IN Li...
Repository
github
Last release
7 years ago

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

0.0.6

7 years ago

0.0.5

7 years ago

0.0.4

7 years ago