通过knex用node.js连接到我的Postgres的问题

时间:2020-05-31 12:48:12

标签: node.js postgresql knex.js

我通过node.jsknex连接到我的Postgres时遇到了这个问题。我是第一次尝试,请谦虚地帮助我解决问题。请帮助我。

我的代码如下。每次我发出请求时,PostgreSQL都不会连接,所以什么也没发生。

const express = require('express');
const bodyParser = require('body-parser');
const app = express();

app.use(bodyParser.json());
const bcrypt = require('bcrypt-nodejs');
const cors = require('cors');
const knex = require('knex')

const db = knex({
    client: 'pg',
    connection: {
        host: '127.0.0.1',
        user: 'postgres',
        password: '',
        database: 'smart-brain'

    }
});

db.select('*').from('users').then(console.log).catch(console.log);

app.use(cors());

app.post('/signin', (req, res) => {
    if (req.body.email === database.users[0].email &&
        req.body.password === database.users[0].password) {
        res.json('success');
    } else {
        res.status(400).json('error logging in');
    }

})
app.post('/register', (req, res) => {
    const {
        name,
        email,
        password
    } = req.body;
    db('users')
        .returning('*')
        .insert({
            email: email,
            name: name,
            joined: new Date()
        })
        .then(respons => {
            res.json(response);
        }).
    catch(err => res.status(400).json('unable to register'))
})

app.listen(3000, () => {
    console.log('app is running on the port 3000');
});

响应是在npm

上的响应
Error: connect ECONNREFUSED 127.0 .0 .1: 5432
at TCPConnectWrap.afterConnect[as oncomplete](net.js: 1141: 16) {
    errno: 'ECONNREFUSED',
    code: 'ECONNREFUSED',
    syscall: 'connect',
    address: '127.0.0.1',
    port: 5432
}

1 个答案:

答案 0 :(得分:0)

如果您使用的是Ubuntu,请转到以下文件夹。

/etc/postgresql/{your_pg_version}/main

或者,如果您使用的是Windows,请转到以下文件夹,

C:\Program Files\PostgreSQL\{your_pg_version}\data\

打开文件pg_hba.conf,以具有超级用户/管理权限写

转到底部,并将trust放在以下各行的末尾。

# Database administrative login by Unix domain socket
local   all             postgres                                trust

# "local" is for Unix domain socket connections only
local   all             all                                     trust
# IPv4 local connections:
host    all             all             127.0.0.1/32            trust

然后,重新启动PostgreSQL服务器,然后尝试使用您的代码。