您的位置:首页 > 数据库

node.js访问postgresql 数据库

2013-01-23 14:30 417 查看
1)安装pg模块:

进入到/usr/local/lib:发现有一个node_schedules目录,里面放的是你安装的模块

npm install -g node-gyp

export $PATH=$PATH:/usr/local/pgsql/bin/

npm install pg //-g 表示全局

2)连接数据库并访问

连接字符串=“tcp:// 用户名 : 密码 @localhost:5432/ 库名”;

1) 事件形式:

var pg = require('pg');

var MATH = require('math');

var constring = "tcp://postgres:1234@localhost/my";

var client = new pg.Client(constring);

client.connect();

client.query("create temp table beatle(name varchar(10),height integer)");

client.query("insert into beatle(name,height) values('john',50)");

client.query("insert into beatle(name,height) values($1,$2)",['brown',68]);

var query = client.query("select * from beatle");

query.on('row',function(row){

console.log(row);

console.log("Beatle name:%s",row.name);

console.log("beatle height:%d' %d\"",MATH.floor(row.height/12),row.height%12);

});

query.on('end',function(){

client.end();

});

测试成功,输出内容为:

{ name: 'john', height: 50 }

Beatle name:john

beatle height:4' 2"

{ name: 'brown', height: 68 }

Beatle name:brown

beatle height:5' 8"

2)回调函数形式:

var pg = require('pg');

var conString = "tcp://postgres:1234@localhost/my";

var client = new pg.Client(conString);

client.connect(function(err) {

client.query('SELECT NOW() AS "theTime"', function(err, result) {

console.log(result.rows[0].theTime);

client.end();

})

});

测试成功,输出结果为:

Wed Jan 23 2013 14:30:12 GMT+0800 (CST)

3) 用回调方式实现上面的事件形式:

var pg = require('pg');

var MATH = require('math');

var constring = "tcp://postgres:1234@localhost/my";

var client = new pg.Client(constring);

client.connect(function(err){

client.query("create temp table beatle(name varchar(10),height integer)");

client.query("insert into beatle(name,height) values('john',50)");

client.query("insert into beatle(name,height) values($1,$2)",['brown',68]);

client.query("select * from beatle ",function(err,result){

console.log(result);

for(var i=0;i<result.rowCount;i++ )

{

console.log(result.rows[i]);

console.log("Beatle name:%s",result.rows[0].name);

console.log("beatle height:%d' %d\"",MATH.floor(result.rows[0].height/12),result.rows[0].height%12);

}

client.end();

});

});

测试成功,输出结果为:

{ command: 'SELECT',

rowCount: 2,

oid: NaN,

rows: [ { name: 'john', height: 50 }, { name: 'brown', height: 68 } ] }

{ name: 'john', height: 50 }

Beatle name:john

beatle height:4' 2"

{ name: 'brown', height: 68 }

Beatle name:john

beatle height:4' 2"
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: