Restify Plugin to support promises and async/await
restify-await-promiseConverts restify routes to support async/await and returned promises. Works with Restify 4.x through 6.x. May work with Restify 7+.
#Supported Restify Versions
- Fully Supported
- 4.x to 5.x
- Probably Works
- 6.x
- Partially Compatible
- 7.x+
NOTE: Does not support Restify 7+ conditionalRouteHandler
- 7.x+
const restify = require('restify'); const restifyPromise = require('restify-await-promise'); const server = restify.createServer({ name: 'myapp', version: '1.0.0' }); //Allows you to manipulate the errors before restify does its work const alwaysBlameTheUserErrorTransformer = { transform: function( exceptionThrownByRoute ){ //Always blame the user exceptionThrownByRoute.statusCode = 400; return exceptionThrownByRoute; } } const options = { logger: yourLogger, //Optional: Will automatically log exceptions errorTransformer: alwaysBlameTheUserErrorTransformer //Optional: Lets you add status codes }; restifyPromise.install( server, options ); // Options is not required //Async function, automatically calls send with the returned object and next server.get('/lookup/:name', async function (req) { return await SomePromise.work( req.parms.name ); }); //Promise function server.get('/echo/:name', function (req) { const params = req.params; return Promise.resolve( { params } ); }); //Existing restify method server.get('/echo2/:name', function (req, res, next) { res.send(req.params); next(); }); server.listen(8080, function () { console.log('%s listening at %s', server.name, server.url); });Installation
$ npm install --save restify-await-promise
Bugs
See https://github.com/PhinCo/restify-await-promise/issues.
HomePage
https://github.com/PhinCo/restify-await-promise#readme