2016-05-13 42 views
0

我从我的命令行中运行以下命令连接到Postgres数据库使用的是Node.js

npm models/database.js 

我收到错误:

password authentication failed for user "marco" 

这是我的连接代码及其存储在我的模型文件夹中的我的项目的根级别的Database.js文件。

var pg = require('pg'); 
// var connectionString = process.env.DATABASE_URL || 'postgres://localhost:5432/NodeTestProject'; 
var connectionString = "postgres://marco:[email protected]:5432/NodeTestProject"; 

var client = new pg.Client(connectionString); 
client.connect(); 
var query = client.query('CREATE TABLE users(id SERIAL PRIMARY KEY, FirstName VARCHAR(40) not null, LastName VARCHAR(40) not null, MiddleName VARCHAR(40) not null, Email VARCHAR(40) not null, UserName VARCHAR(40) not null, Password VARCHAR(40) not null'); 
query.on('end', function() { client.end(); }); 

我相信,当我成立了PostgreSQL的我设置的密码为“Easye123”我可以登录到PostgreSQL没有问题,我创建了一个名为NodeTestProject数据库100%。我必须为NodeTestProject数据库创建一个用户吗?我错过了一步吗?对于任何反馈,我们都表示感谢。

enter image description here

+0

看起来像这样会与node.js大多无关 –

+1

这是一个使用Postgresql的Node.Js项目,感谢您提供非常有用的反馈。 @KevinB – Lostaunaum

+0

我的观点是,如果由于权限问题node.js无法连接到它,则应该使用相同的用户信息从控制台出现相同的问题。如果你不这样做,那么需要做更多的研究。 –

回答

2

给谁是新的到PostgreSQL

你把你的连接文件的凭据是不一样的,你设置,同时安装PostgreSQL的超级用户。在您的pgAdminIII中,您必须创建一个组角色,并允许该组角色在设置“可以登录”后,将该数据库的所有者声明为该组角色用户。最后,将GroupRole用户声明为您用作连接字符串中密码的用户名和密码。

enter image description here

enter image description here

var pg = require('pg'); 
var conString = "postgres://Marco:[email protected]:5432/NodeTestProject"; 

var client = new pg.Client(conString); 
client.connect(function(err) { 
    if(err) { 
    return console.error('could not connect to postgres', err); 
    } 
    client.query('SELECT NOW() AS "theTime"', function(err, result) { 
    if(err) { 
     return console.error('error running query', err); 
    } 
    console.log(result.rows[0].theTime); 
    //output: Tue Jan 15 2013 19:12:47 GMT-600 (CST) 
    client.end(); 
    }); 
}); 

我现在可以成功登录到这个本地数据库,并与其进行交互。