выполняются не по порядку?
async function init() {
await health.testPg() // Check is postgres up
//If it's down -- do not start server
await dataSource.initialize().then(async () => {
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));
// Routes
app.post("/reg", (req: express.Request, res: express.Response) => reg(req, res))
app.get("/getregs", (req: express.Request, res: express.Response) => seeRegs(req, res))
app.get('*', function(req, res){
res.status(404).send('Page not found :(');
});
app.listen(port, () => {
console.log(`Server started at port ${port}`)
})
})
}
Тут мне выдаёт ошибку от dataSource.initialize() не выполняя health.testPg(), хотя await на месте. Если убрать dataSource.initialize() то все остальное выполняется по порядку
Await .then? )
Ой, это осталось с момента когда асинка не было) Спасибо, уберу
Даже если делать health.testPg() init() То сначала выдаст ошибку от dataSource.initialize() внутри init()
node:internal/process/promises:288 triggerUncaughtException(err, true /* fromPromise */); ^ Error: connect ECONNREFUSED 127.0.0.1:5432 at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1246:16) { errno: -111, code: 'ECONNREFUSED', syscall: 'connect', address: '127.0.0.1', port: 5432 } Вот сама ошибка какая то такая (я знаю, что база не поднята, так надо, я как раз healthcheck свой тестирую)
async testPg(): Promise<void> { if ( this.failed >= 10 ) { this.logger.err("Failed connect to PostgreSQL") throw "Failed connect to PostgreSQL" } const pool = await new Pool({ host: process.env.POSTGRES_HOST || "127.0.0.1", port: parseInt(process.env.POSTGRES_PORT || ""), user: process.env.POSTGRES_USER || "", password: process.env.POSTGRES_PASSWORD || "", database: process.env.POSTGRES_DB || "", }) try { await pool.connect() } catch(err) { this.failed += 1 this.logger.wrn("Cannot connect to db. Wait...") setTimeout(() => this.testPg(), 10000) return } this.logger.good("Success connection to PostgreSQL! It's up") pool.end() } Вот сам код healthcheck моего
Обсуждают сегодня