Соединения Heroku PostgreSQL не прерываются для определенных маршрутов Express - PullRequest
0 голосов
/ 13 июля 2020

У меня есть 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, чего я бы хотел избежать в будущем.

1 Ответ

0 голосов
/ 13 июля 2020

Исправлено: после входа / регистрации использовался другой маршрут, который не был завершен. Я закончил другой маршрут, и сейчас нет соединений

...