身份验证无法将node.js与PostgreSQL连接

Jac*_*son 4 postgresql node.js express

我有一些使用PostgreSQL设置的数据库,我能够从psql REPL那样做我需要的一切,但当我尝试通过同一台机器上的node.js访问它时,我收到一个password authentication filed for user"[my user name]"错误.

根据在线教程,我的数据库访问代码是这样的:

var pg = require('pg');
var path = require('path');
var connectionString = require(path.join(__dirname, '../', '../', 'config'));

var client = new pg.Client(connectionString);
client.connect();
var query = client.query('CREATE TABLE items(id SERIAL PRIMARY KEY, text VARCHAR(40) not null, complete BOOLEAN)');
query.on('end', function() { client.end(); });
Run Code Online (Sandbox Code Playgroud)

但是由于我已经使用我自己的一些函数设置了表,我只是尝试在POST上访问这些函数,其中:

var express = require('express');
var router =  express.Router();
var pg = require('pg');
var path = require('path');
var connectionString = 'postgres://localhost:5432/[My User Name]?ssl=true;

router.post('/locations', function(req,res) {
    var client = new pg.Client(connectionString);
    client.connect();

    var query = client.query([Call to my function, works in REPL, something like "SELECT * FROM create_location([Data from req])"]);
});
Run Code Online (Sandbox Code Playgroud)

我把我的pg_.conf设置为:

local  all  postgres         peer
local  all  all              trust
local  all  all 127.0.0.1/32 trust
host   all  all ::1/128      md5
Run Code Online (Sandbox Code Playgroud)

chr*_*sse 9

你的连接字符串似乎是错误的.连接字符串必须像:

postgres://[username]:[password]@[host]:[port]/[databasename]
Run Code Online (Sandbox Code Playgroud)

在你的情况下:

postgres://[username]@localhost:5432/[databasename]?ssl=true
Run Code Online (Sandbox Code Playgroud)