Search code examples
node.jspostgresqlexpressnode-postgres

node-postgres returning undefined result


When i try to get result from node-postgres from my express app, pool.query is returning undefined result when i log it in console. Not sure if its about database connected properly or I am not returning the result properly? I am using heroku to deploy the app and using connection string given by heroku. Cant figure it out, anyone there to help please?.

db.js:

const { Pool } = require('pg');
const conString = process.env.DATABASE_URL;
const pool = new Pool({
    connectionString: conString,
        ssl: {rejectUnauthorized: false}
});
module.exports ={
    getResult: (sql, params, callback)=>{
        pool.query(sql, [params], (error, results)=>{
            console.log(results);
            if(!error){
                callback(results);
            }else{
                callback(null);
            }
            pool.end();
        });
    }
}

user-model.js

var db = require('./db');

module.exports ={
    findUserById: (userId)=>{
        return new Promise((resolve, reject)=>{
            var sql = "select id from users where id=?";
            db.getResult(sql, [userId], (result)=>{
                if(result.length>0){
                    resolve(true);
                }else{
                    resolve(false);
                }
            });
        });
    }
}

Solution

  • seems the sent query parameter is in mysql format, use node-postgres format which is var sql = "select id from users where id = $1"; which should return valid result