README
drouter
A node.js directory-driven router for connect/express.
It does not use the router functionality of connect/express. The new version of connect(3.x)/express(4.x) should be compatible.
Usage
var drouter = require("drouter"),
express = require("express"),
app = express(); // connect();
drouter("directory_root", app, "some user defined data object");
// return a list of path and middleware pairs
// [{pt:"loaded path", mw:"loaded module"}, ...].
// at this point, app has all the middleware loaded at their path
// using "app.use(path, middlewareCreator(userData))"
Example
Suppose we have a directory structure as follow:
+mw1
index.js
+abc
index.js
+def
index.js
+fgh
+ hij
index.js
+ijk
+ghi
+efg
+bcd
index.js
+cde
Each index.js
file exports a function which takes in a user defined data object and returns a connect/express compatible middleware.
drouter("mw1", app, {msg:"some msg"})
will load the app at these paths :
/mw1
/mw1/abc
/mw1/abc/def
/mw1/bcd
The index.js
under hij will not be loaded because its parent directory fgh
is not loadable and thus all its children are ignored.
Loadable condititon is applied by require.resolve("module")
.
Other
Suggestion and help are always welcome !
Licence
MIT