使用 Node.js 连接到 postgres 数据库

Connecting to postgres database with 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: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 数据库创建一个用户吗?我错过了一步吗?如有任何反馈,我们将不胜感激。

对于 Postgresql 的新手

您放置在连接文件中的凭据与您在安装 Postgresql 时设置的超级用户不同。在您的 pgAdminIII 中,您必须创建一个组角色,并在设置后允许该组角色 "Can Login" 将数据库的所有者声明为该组角色用户。最后将该 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();
  });
});

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