можно использовать что-то вроде
import express from "express";
const app = express();
const ip = "localhost";
const port = 4000;
app.get("/", (req, res) => {
res.send("some response");
});
function startServer() {
app.listen(port, ip, () => {
console.log(`Сервер запущен на адресе ${ip} и порту ${port}`);
});
}
async function connectToDatabase() {
return new Promise((resolve, reject) => {
setTimeout(() => resolve("ok"), 2000);
});
}
connectToDatabase()
.then(() => {
startServer();
console.log("Успешное подключение к базе данных.");
})
.catch((err) => {
console.error("Не удалось подключиться к базе данных:", err);
});
где для коннекта к бд использовать промис
export function connectToDatabase() {
return new Promise((resolve, reject) => {
pool.connect((err, client, release) => {
if (err) {
console.error('Ошибка в запросе к БД (1)', err.stack);
release();
reject(err);
return;
}
client.query('SELECT NOW()', (err, result) => {
release();
if (err) {
console.error('Ошибка в запросе к БД (2)', err.stack);
reject(err);
return;
}
console.log('\x1b[34m%s\x1b[0m', `PostgreSQL is running (${result.rows[0].now})`);
resolve(pool);
});
});
});
}
Ну и пул объявить не забыть. Хз, с обычным промисом который в первом примере, работает окей, почему с подключением к бд будет иначе? Для эксперимента ставить pg неохота. Вполне возможно что я что-то проглядел, поправьте, с серверами на ноде давно не имел дела.