我通过node.js
与knex
连接到我的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
}
答案 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服务器,然后尝试使用您的代码。