2.3.0 • Published 5 years ago
hecks v2.3.0
hecks
Mount your express app onto your hapi server, aw heck!
Lead Maintainer - Devin Ivy
Usage
See also the API Reference
Hecks allows you to seamlessly incorporate express applications into a hapi v17+ server. This is particularly useful for testing an express server using server.inject(), for unifying deployment of existing express and hapi applications, and as an initial stepping stone in migrating an express application to hapi.
const Express = require('express');
const BodyParser = require('body-parser');
const Hapi = require('@hapi/hapi');
const Hoek = require('@hapi/hoek');
const Hecks = require('hecks');
(async () => {
const app = Express();
app.post('/user', BodyParser.json(), (req, res) => {
const user = Hoek.shallow(req.body);
user.saved = true;
res.json(user);
});
const server = Hapi.server();
await server.register([
Hecks.toPlugin(app, 'my-express-app')
]);
const { result } = await server.inject({
method: 'post',
url: '/user',
payload: { name: 'Bill', faveFood: 'cactus' }
});
console.log(result); // {"name":"Bill","faveFood":"cactus","saved":true}
})();