Как я могу предотвратить регистрацию Service running ...
msg в первую очередь?Я хотел бы сообщения внутри testDBConnection
фн.чтобы войти первым вместо.Когда БД не работает, я бы хотел, чтобы сообщение Looks like DB is not running
продолжало регистрироваться, и после того, как БД начнет работать с сообщениями DB connection has been established
и Service running ...
, должны следовать.Я пробовал несколько вещей, но я не смог придумать правильный код.Спасибо за вашу помощь.
index.js
import app from './config/express';
import config from './config/config';
import logger from './config/winston';
import { initDbConnection } from './server/db';
app.listen(config.port, () => {
initDbConnection();
logger.info(`Service running and listening on port ${config.port}`);
});
db.js
import knex from 'knex';
import config from '../config/config';
import logger from '../config/winston';
const { db } = config;
let pool;
const testDBConnection = (client) => {
const intervalId = setInterval(async () => {
try {
await client.select(1);
logger.info('DB connection has been established');
clearInterval(intervalId);
} catch (error) {
logger.error('Looks like DB is not running');
}
}, 2000);
};
export const initDbConnection = (mock) => {
if (mock) {
pool = knex({});
} else {
pool = knex({
client: 'pg',
version: '7.4.2',
connection: db,
debug: true
});
testDBConnection(pool);
}
};
export const getDb = () => pool;