makemehapi
Version:
Self guided workshops to teach you about hapi.
48 lines (41 loc) • 1.09 kB
JavaScript
(async () => {
try {
const Hapi = require('@hapi/hapi');
const server = new Hapi.Server({
host: 'localhost',
port: Number(process.argv[2] || 8080)
});
server.route({
method: 'POST',
path: '/upload',
handler: (request, h) => new Promise((resolve, reject) => {
let body = '';
request.payload.file.on('data', (data) => {
body += data;
});
request.payload.file.on('end', () => {
const result = {
description: request.payload.description,
file: {
data: body,
filename: request.payload.file.hapi.filename,
headers: request.payload.file.hapi.headers
}
};
return resolve(JSON.stringify(result));
});
request.payload.file.on('error', err => reject(err));
}),
options: {
payload: {
output: 'stream',
parse: true,
multipart: true
}
}
});
await server.start();
} catch (error) {
console.log(error);
}
})();