A library that allows other projects to be agnostic of particular http server implementation.
Notice of change of ownership: Starting version 1.0.0 this package has changed it's owner and goals. Old version (0.0.0) is still available on npm via npm install agnostic@0.0.0
or on github. Thank you.
node / libs | express | restify | hapi | http |
---|---|---|---|---|
v0.12 | 3.x, 4.x | 2.x, 3.x, 4.x | 8.x, 9.x, 10.x | ✓ |
io.js | 3.x, 4.x | 2.x, 3.x, 4.x | 8.x, 9.x, 10.x | ✓ |
v4 | 3.x, 4.x | 2.x, 3.x, 4.x | 8.x, 9.x, 10.x, 11.x, 12.x, 13.x, 14.x, 15.x | ✓ |
v5 | 3.x, 4.x | 2.x, 3.x, 4.x | 8.x, 9.x, 10.x, 11.x, 12.x, 13.x, 14.x, 15.x | ✓ |
v6 | 3.x, 4.x | 2.x, 3.x, 4.x | 8.x, 9.x, 10.x, 11.x, 12.x, 13.x, 14.x, 15.x | ✓ |
npm install --save agnostic
var agnostic = require('agnostic');
module.exports = agnostic(myRequestHandler);
/**
* Does cool things
*
* @param {EventEmitter} request - request object, mimicking IncomingMessage
* @param {Function} respond - callback to respond to the request
*/
function myRequestHandler(request, respond)
{
// do cool things
// `request.body` - parsed request body
// `request.query` - parsed query string
// `respond` is a function with the following signature:
// `respond([code], [content[, options]]);`
respond(200, 'Received hit to ' + request.url, {headers: {'X-Powered-By': 'AllCoolThings'}});
}
var express = require('express');
var coolLib = require('above-cool-lib');
var app = express();
app.all('/my-endpoint', coolLib);
// start the server
app.listen(1337);
var restify = require('restify');
var coolLib = require('above-cool-lib');
var server = restify.createServer();
server.get('/my-endpoint', coolLib);
server.post('/my-endpoint', coolLib);
// start the server
server.listen(1337);
var Hapi = require('hapi');
var coolLib = require('above-cool-lib');
var server = new Hapi.Server();
// setup hapi server
server.connection({ port: 1337 });
server.route({
method : ['GET', 'POST'], // Hapi uses GET handler for HEAD requests
path : '/my-endpoint',
handler: coolLib
});
// start the server
server.start();
var http = require('http');
var coolLib = require('above-cool-lib');
server = http.createServer(coolLib);
// start the server
server.listen(1337);
More examples can be found in test folder.
Or open an issue with questions and/or suggestions.
Agnostic is released under the MIT license.