繁体   English   中英

无法从 Node.js 连接到 PostgreSQL

[英]Can't to get connection to PostgreSQL from Node.js

在启动我的网站时,我无法连接到我的数据库。 它不会出错并且页面正在无限加载。 谁知道这个问题的答案给我一些建议。

我在(Node.js、PostgreSQL、Express)工作

from file config_db

const client_admin1 = {
    user:'a_role',
    database:'road_db',
    password: '12345',
    host:'localhost',
    port:5432,
    max:10,
    idleTimeoutMillis: 30000
}
const pg = require("pg")

const client_login = require("../config/config_db");


     searchUser(req, res) {
            const db = new pg.Pool(client_login.client_admin1)
            db.connect(function(err, client, done){
            if(err){
            return console.error('connection problems')
             }
             client.query('SELECT * FROM login_phone WHERE phone = $1 AND password1 = $2',[req.body.login, req.body.password], function(err, result){
                    done()
                    if (err || result.rowCount <= 0){
                       res.render('error_login_choice')
                        return console.error("")
                    }
                    if(result.rows[0].role_name === "client")
                    {
                            cln.getClients(req,res)
                    }
                })
}

试试这个 executeQuery 方法

const pg = require('pg');

const pgconfig = {
  user: process.env.DATA_BASE_USER,
  database: process.env.DATA_BASE_NAME,
  password: process.env.DATA_BASE_PASSWORD,
  host: process.env.DATA_BASE_HOST,
  port: process.env.DATA_BASE_PORT,
};

console.log(`DB |  Settings: ${JSON.stringify(pgconfig)}`);

const pool = new pg.Pool(pgconfig);

pool.on('connect', () => {
  console.log('DB | new client connection establish.');
});

pool.on('error', err => {
  console.error(`idle client error, ${err.message} | ${err.stack}`);
});

pool.connect(err => {
  if (err) {
    console.error(`PostgreSQL input: ${err}`);
  } else console.log('DB | connection establish.');
});

const executeQuery = async(sql, data) => {
  logger.debug(`sqlToDB() sql: ${sql} | data: ${data}`);
  try {
    const result = await pool.query(sql, data);
    return result;
  } catch (error) {
    console.error(error.message);
  }
};

module.exports = {
  executeQuery,
};

用法:

const dbHandler = require('./db');

    const getLogedInUser = login,password => {
      const selectFieldsQuery = `'SELECT * FROM login_phone WHERE phone = $1 AND password1 = $2'`;
      return dbHandler.executeQuery(selectFieldsQuery, [login,password]).then(e => e.rows);
    };

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM