使用 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();
});
});
我现在可以成功登录到这个本地数据库并与之交互。
我是 运行 来自我的命令行的以下命令
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();
});
});
我现在可以成功登录到这个本地数据库并与之交互。