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-generatornpm 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 = ; // ...// 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.;
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.
;
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 = ;app;
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().moduleexports = // Use "METHOD: FUNCTION" instead of execute the METHOD('/', FUNCTION) function. { // ... } { // ... };
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
- A Brief Introduction To Express
https://youngoat.gitbooks.io/a-brief-history-of-node-js/content/expressjs.html