-/* 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');
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, {
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 });
});