|
@@ -3,54 +3,58 @@
|
|
|
* working implementation for the benchmark suite.
|
|
|
*/
|
|
|
|
|
|
-const Hapi = require('hapi');
|
|
|
-const Vision = require('vision');
|
|
|
+const Hapi = require('@hapi/hapi');
|
|
|
+const Vision = require('@hapi/vision');
|
|
|
|
|
|
const options = {
|
|
|
- connections: {
|
|
|
- compression: false
|
|
|
- }
|
|
|
+ port: process.env.PORT || 8080,
|
|
|
+ host: '0.0.0.0',
|
|
|
+ compression: false
|
|
|
};
|
|
|
|
|
|
-const server = new Hapi.Server(options);
|
|
|
+const server = new Hapi.server(options);
|
|
|
|
|
|
-server.connection({port: process.env.PORT || 8080, host: '0.0.0.0'});
|
|
|
-server.register(Vision, (err) => {
|
|
|
- if (err) {
|
|
|
- throw err;
|
|
|
- }
|
|
|
-
|
|
|
- server.views({
|
|
|
- engines: { html: require('handlebars') },
|
|
|
- path: __dirname + '/views/'
|
|
|
- });
|
|
|
-});
|
|
|
-
|
|
|
-const Handler = require(`./handlers/${process.env.NODE_HANDLER}`);
|
|
|
-
|
|
|
-// Makes routing simpler as tfb routes are all GET's
|
|
|
-// We also don't use the nifty route features that Hapi has
|
|
|
-// to offer such as attaching a validator
|
|
|
-const Route = (path, handler) =>
|
|
|
- server.route({ method: 'GET', path, handler });
|
|
|
+const provision = async () => {
|
|
|
|
|
|
-const JsonSerialization = (req, reply) =>
|
|
|
- reply({ message: 'Hello, World!' }).header('Server', 'hapi');
|
|
|
-
|
|
|
-const Plaintext = (req, reply) =>
|
|
|
- reply('Hello, World!')
|
|
|
- .header('Server', 'hapi')
|
|
|
- .header('Content-Type', 'text/plain');
|
|
|
+ await server.register({
|
|
|
+ plugin: Vision,
|
|
|
+ options: {
|
|
|
+ engines: { html: require('handlebars') },
|
|
|
+ path: __dirname + '/views/'
|
|
|
+ }
|
|
|
+ })
|
|
|
+
|
|
|
+ const Handler = require(`./handlers/${process.env.NODE_HANDLER}`);
|
|
|
+
|
|
|
+ // Makes routing simpler as tfb routes are all GET's
|
|
|
+ // We also don't use the nifty route features that Hapi has
|
|
|
+ // to offer such as attaching a validator
|
|
|
+ const Route = (path, handler) =>
|
|
|
+ server.route({ method: 'GET', path, handler });
|
|
|
+
|
|
|
+ const JsonSerialization = (request, h) =>
|
|
|
+ h.response({ message: 'Hello, World!' }).header('Server', 'hapi');
|
|
|
+
|
|
|
+ const Plaintext = (request, h) =>
|
|
|
+ h.response('Hello, World!')
|
|
|
+ .header('Server', 'hapi')
|
|
|
+ .header('Content-Type', 'text/plain');
|
|
|
+
|
|
|
+
|
|
|
+ Route('/json', JsonSerialization);
|
|
|
+ Route('/plaintext', Plaintext);
|
|
|
+
|
|
|
+ Route('/db', Handler.SingleQuery);
|
|
|
+ Route('/queries', Handler.MultipleQueries);
|
|
|
+ Route('/fortunes', Handler.Fortunes);
|
|
|
+ Route('/updates', Handler.Updates);
|
|
|
+
|
|
|
+ await server.start();
|
|
|
|
|
|
+ console.log('Hapi worker started and listening on ' + server.info.uri + " "
|
|
|
+ + new Date().toISOString(" "));
|
|
|
+}
|
|
|
|
|
|
-Route('/json', JsonSerialization);
|
|
|
-Route('/plaintext', Plaintext);
|
|
|
+provision()
|
|
|
|
|
|
-Route('/db', Handler.SingleQuery);
|
|
|
-Route('/queries', Handler.MultipleQueries);
|
|
|
-Route('/fortunes', Handler.Fortunes);
|
|
|
-Route('/updates', Handler.Updates);
|
|
|
|
|
|
-server.start((err) =>
|
|
|
- console.log('Hapi worker started and listening on ' + server.info.uri + " "
|
|
|
- + new Date().toISOString(" ")));
|