У меня есть 2 маршрута, которые запрашивают мою базу данных Heroku postgres ниже:
app.post('/signin', (req,res) => {
let client = new Client({
connectionString: process.env.DATABASE_URL,
ssl: {
rejectUnauthorized: false
}
});
client.connect()
.then(()=>client.query(`SELECT * FROM users WHERE username = '${req.body.user}';`))
.then((results) => {
if(results.rowCount===1){
bcrypt.hash(req.body.pass, saltRounds, function(err, hash) {
if(bcrypt.compareSync(req.body.pass, results.rows[0].password)){
res.json('loggedIn') //User and pass are good
} else{
res.json('wrongPw') //Pass is wrong
}
})
} else{
res.json('user not found') //User dne
}
})
.catch(err=>console.log(err))
.finally(()=>client.end())
})
app.post('/signup', (req,res) => {
let client = new Client({
connectionString: process.env.DATABASE_URL,
ssl: {
rejectUnauthorized: false
}
});
bcrypt.hash(req.body.pass, saltRounds, function(err, hash) {
// Store hash in password DB.
client.connect()
.then(()=> client.query(`INSERT INTO users (username, password) VALUES ('${req.body.user}', '${hash}')`))
.then(results => res.json(results))
.catch(err=>res.json('user already exists'))
.catch(err=>console.log(err))
.finally(() => client.end())
});
});
Каждый раз, когда я их использую, я замечаю, что их подключения к базе данных задерживаются. Я все еще вижу это после входа в систему и регистрации. введите описание изображения здесь
Я ждал, не истечет ли у них тайм-аут, но они этого не сделали, и в конечном итоге пришлось использовать pg: killall, чего я бы хотел избежать в будущем.