Comments (5)
the middleware:before
and middleware:after
events correspond to when middleware is registered, not when it is loaded into memory or when the factory is run (both of those will happen before the before
events). In other words, let's say we have a middleware called custom
. You can expect middleware:before
(and middleware:before:custom
) to fire, then app.use(custom)
(or similar), then middleware:after
(and middleware:after:custom
).
You can see this behavior if you log out the express:router debug statements. For a small sample:
// ---------- index.js ----------
var meddleware = require('meddleware');
var express = require('express');
var app = express();
var config = {
custom: {
module: './custom'
}
};
app.on('middleware:before:custom', function (evt) {
console.log('before %s ...', evt.config.name);
});
app.on('middleware:after:custom', function (evt) {
console.log('after %s ...', evt.config.name);
});
app.use(meddleware(config));
// ---------- custom.js ----------
module.exports = function customFactory() {
return function custom(req, res, next) { next(); };
};
starting the above with DEBUG=express:router node index.js
will print out:
before custom ...
express:router use / custom +5ms
after custom ...
from meddleware.
Hmmm... Ok. Thanks for in-depth example, really appreciated.
Too bad though, i was trying to inject arguments not config related using the events. Makes sense now.
Will try a different approach!
Good work guys!
from meddleware.
Hmm.. if you wouldn't mind walking me through a more specific example, maybe there's another pattern we can tease out that will work for you?
from meddleware.
Well, it's pretty simple: the process is to rig express apps with middlewares, either from modules and local, and they may require different parameters, with no pattern whatsoever. I'm looking at shortstop, looks pretty nice. Also, the config example in this module uses "path:./lib/middleware/example.js"
but without shortstop the path is not resolved, right?
Thanks for the help o/
from meddleware.
I'd also checkout confit to do environment-specific (or really anything specific) configs. In fact, that's precisely how we do it with kraken-js.
Thanks for the heads-up on the example. You're right, that shouldn't be in there.
from meddleware.
Related Issues (20)
- Route on middleware not working HOT 6
- Backport route regex support for v1.x?
- normalize the config `module` property
- add array support for the `route` property HOT 1
- `mountpath` isn't always a string HOT 4
- Enabled toggle in flow controlled sections changed HOT 3
- `util#mapValues` `prop.name` won't ever exist
- `module.name` is not required? HOT 1
- Meddleware 4.0 not working as expected HOT 9
- Passing object to middleware HOT 1
- Can we support async middleware factories? HOT 5
- Register middleware based on HTTP method HOT 3
- Deprecate RQ for parallelism HOT 1
- Why is the configuration an object instead of an array of objects?
- edge case bug in the local path resolver HOT 1
- npm5 issue HOT 1
- How can I have an environment-controllable value that defaults to true? HOT 3
- meddleware broken with config v.3.0
- if modulePath is undefined, the require might resolve relative path from config wrongly HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from meddleware.