mirror of
https://github.com/github/codeql.git
synced 2025-12-24 04:36:35 +01:00
support indirect route-handlers for NodeJS
This commit is contained in:
@@ -0,0 +1,36 @@
|
||||
var http = require('http');
|
||||
|
||||
function decorate(method) {
|
||||
return function(req, res) {
|
||||
return method.call(this, req, res);
|
||||
};
|
||||
}
|
||||
|
||||
function Server(routes) {
|
||||
this.routes = routes;
|
||||
}
|
||||
|
||||
Server.prototype = {
|
||||
requestHandler: function() {
|
||||
var routes = this.routes;
|
||||
return function(req, res) { // route handler
|
||||
var handler = routes[req.url] || routes['*'];
|
||||
|
||||
return handler.call(this, req, res);
|
||||
}.bind(this);
|
||||
},
|
||||
};
|
||||
|
||||
var routes = {
|
||||
'/foo/bar': decorate((req, res) => { // route handler
|
||||
res.end("foo");
|
||||
}),
|
||||
'/bar/foo': function(req, res) { // route handler
|
||||
res.end("bar");
|
||||
}
|
||||
};
|
||||
|
||||
var appServer = new Server(routes);
|
||||
var server = http.createServer(appServer.requestHandler());
|
||||
|
||||
server.listen(8080, () => {});
|
||||
Reference in New Issue
Block a user