关于通过knex用node.js连接到Postgres的问题。

问题描述 投票:0回答:1

我面临着这样的问题,在连接到我的Postgres时,用 node.js 通过 knex. 我是第一次尝试,恳请大家帮我解决这个问题,请大家帮帮我。

我的代码如下。每次我提出请求,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
}
node.js postgresql knex.js
1个回答
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服务器,然后再尝试使用你的代码。

© www.soinside.com 2019 - 2024. All rights reserved.