auth cleanups
[urlittler] / server.js
index 404a7c59f2624a15948e5f43397f3d6c518947a1..1dece0354e342ab8e8ee8125b58763f444328af5 100644 (file)
--- a/server.js
+++ b/server.js
@@ -1,7 +1,7 @@
-/* eslint-disable capitalized-comments */
 'use strict';
 
-const http = require('http');
+const http = require('node:http');
+const { AsyncLocalStorage } = require('node:async_hooks');
 
 const DB = require('./src/db');
 const Logger = require('./src/logger');
@@ -9,16 +9,17 @@ const Service = require('./src/service');
 const { fileScope } = require('./src/common');
 const { version } = require('./package.json');
 
-const _fileScope = fileScope(__filename)('main');
+const _scope = fileScope(__filename)('main');
 
 const PORT = process.env.PORT || 3001;
 const ADDR = process.env.LISTEN_ADDR || '127.0.0.1';
 
+const asyncLocalStorage = new AsyncLocalStorage();
 const logger = new Logger({
   // ignoreBelowLevel: 'info',
-});
+}, {}, asyncLocalStorage);
 const db = new DB(logger, {
-  connectionString: 'postgresql://%2Fhome%2Ffek%2Fprojects%2Fhubl%2Fnodejs%2Fpostgres_dev-13/urlittler',
+  connectionString: 'postgresql://%2Fhome%2Ffek%2Fprojects%2F_db%2Fpostgres_dev-15/urlittler',
   // connectionString: 'sqlite://',
 });
 const service = new Service(logger, db, {
@@ -26,14 +27,16 @@ const service = new Service(logger, db, {
   manager: {
     selfBaseUrl: process.env.BASE_URL || '',
   },
-});
+}, asyncLocalStorage);
 
 http.createServer((req, res) => {
-  service.dispatch(req, res);
+  asyncLocalStorage.run({}, async () => {
+    await service.dispatch(req, res);
+  });
 }).listen(PORT, ADDR, (err) => {
   if (err) {
-    logger.error(_fileScope, 'error starting server:', err);
+    logger.error(_scope, 'error starting server:', err);
     throw err;
   }
-  logger.info(_fileScope, `server (version ${version}) started on ${ADDR}:${PORT}`);
+  logger.info(_scope, 'server started', { version, listenAddress: ADDR, listenPort: PORT });
 });