我从命令行运行以下命令
npm models/database.js
我收到错误:
password authentication failed for user "marco"
这是我的连接代码,它存储在我项目根级别的models文件夹中的Database.js文件中。
var pg = require('pg');
// var connectionString = process.env.DATABASE_URL || 'postgres://localhost:5432/NodeTestProject';
var connectionString = "postgres://marco:Easye123@localhost: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(); });
我100%确定当我设置Postgresql时,我将密码设置为" Easye123"我可以登录到Postgresql没有问题,我已经创建了一个名为NodeTestProject的数据库。我是否必须为NodeTestProject数据库创建用户?我错过了一步吗?任何反馈都将不胜感激。
答案 0 :(得分:2)
对Postgresql
的新手您在连接文件中输入的凭据与安装Postgresql时设置的SuperUser不同。在您的pgAdminIII中,您必须创建一个组角色并允许该组角色能够登录"设置完成后,将数据库的所有者声明为该组角色用户。最后声明GroupRole用户作为用户名和密码,用作连接字符串中的密码。
var pg = require('pg');
var conString = "postgres://Marco:12345@localhost: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();
});
});
我现在可以成功登录到本地数据库并与之交互。