node.js 操作 postgresql 数据库
2013-01-25 15:20
513 查看
上一篇node.js访问postgresql数据库,主要是在同一个文件里面实现对数据库的操作。
这篇node.js操作postgresql数据库,采用的是两个文件的方式实现,一个文件相当于客户端,实现连接数据库,调用相应的函数,而另一个文件是具体实现函数的。
在你安装了node.js,postgresql数据库(不一定是本机)和相应的模块的基础上,在数据库中建表teacher。并插入几条测试数据,这儿插入的测试数据为:
1) client.js
2) function.js
3) 运行node client.js,结果如下:
Connecting to postgres...
Connected to postgres automatically.
connection success...
select beginning
select end
insert beginning
insert end
select beginning
select end
delete beginning
delete end
in select callback function
id:1 name:aaa pwd:111
id:2 name:bbb pwd:222
id:3 name:ccc pwd:333
id:4 name:ddd pwd:444
Inserted: undefined row.
insert success...
in select callback function
id:1 name:aaa pwd:111
id:2 name:bbb pwd:222
id:3 name:ccc pwd:333
id:4 name:ddd pwd:444
id:10 name:fillp pwd:abc
delete success...
在函数实现里面,我们采用了回调函数的形式实现,根据输出信息可以很号的看出node.js的主要特性:非阻塞
这篇node.js操作postgresql数据库,采用的是两个文件的方式实现,一个文件相当于客户端,实现连接数据库,调用相应的函数,而另一个文件是具体实现函数的。
在你安装了node.js,postgresql数据库(不一定是本机)和相应的模块的基础上,在数据库中建表teacher。并插入几条测试数据,这儿插入的测试数据为:
create table teacher(id varchar(10),name varchar(20),pwd varchar(10));
insert into teacher values('1','aaa','111'); insert into teacher values('2','bbb','222'); insert into teacher values('3','ccc','333'); insert into teacher values('4','ddd','444');
1) client.js
var f = require('./function'); var pg = require('pg'); var conString = "tcp://postgres:postgres@localhost/my"; var client = new pg.Client(conString); var value = ['10','fillp','abc']; insertSQLString = 'insert into teacher values($1,$2,$3)'; selectSQLString = 'select * from teacher'; updateSQLString = "update teacher set NAME='ipone' where ID='4'"; deleteSQLString = "delete from teacher where ID='10'"; client.connect(function(error, results) { if(error){ console.log('ClientConnectionReady Error: ' + error.message); client.end(); return; } console.log('Connecting to postgres...'); console.log('Connected to postgres automatically.'); console.log('connection success...\n'); f._select(client,selectSQLString); f._insert(client,insertSQLString,value); f._select(client,selectSQLString); f._delete(client,deleteSQLString); });
2) function.js
function _insert(client,insertSQLString,value) { console.log("insert beginning"); client.query(insertSQLString, value, function(error, results) { if(error) { console.log("ClientReady Error: " + error.message), client.end(); return; } console.log('Inserted: ' + results.affectedRows + ' row.'), console.log('insert success...\n'); }); console.log("insert end\n"); } function _select(client,selectSQLString) { console.log("select beginning"); client.query(selectSQLString, function selectCb(error, results, fields) { console.log("in select callback function"); if (error) { console.log('GetData Error: ' + error.message), client.end(); return; } if(results.rowCount > 0) { var firstResult, resultSet = ''; for(var i = 0, len = results.rowCount; i < len; i++) { firstResult = results.rows[i]; resultSet += 'id:' + firstResult['id'] + ' ' + 'name:' + firstResult['name'] + ' ' + 'pwd:' + firstResult['pwd'] + '\n'; } } console.log(resultSet); /* 添加功能:使查询结果集返回到客户端并保证此函数的通用性. */ }); console.log("select end\n"); } function _update(client,updateSQLString) { console.log("update beginning"); client.query(updateSQLString,function(error, results) { if(error) { console.log("ClientReady Error: " + error.message), client.end(); return; } console.log('update success...\n'); }); console.log("update end\n"); } function _delete(client,deleteSQLString) { console.log("delete beginning"); client.query(deleteSQLString, function(error, results) { if(error) { console.log("ClientReady Error: " + error.message), client.end(); return; } console.log('delete success...\n'); }); console.log("delete end\n"); } exports._insert = _insert; exports._select = _select; exports._update = _update; exports._delete = _delete;
3) 运行node client.js,结果如下:
Connecting to postgres...
Connected to postgres automatically.
connection success...
select beginning
select end
insert beginning
insert end
select beginning
select end
delete beginning
delete end
in select callback function
id:1 name:aaa pwd:111
id:2 name:bbb pwd:222
id:3 name:ccc pwd:333
id:4 name:ddd pwd:444
Inserted: undefined row.
insert success...
in select callback function
id:1 name:aaa pwd:111
id:2 name:bbb pwd:222
id:3 name:ccc pwd:333
id:4 name:ddd pwd:444
id:10 name:fillp pwd:abc
delete success...
在函数实现里面,我们采用了回调函数的形式实现,根据输出信息可以很号的看出node.js的主要特性:非阻塞
相关文章推荐
- node.js 操作postgresql数据库(2)
- Node.js 连接 postgreSQL数据库 (使用连接池pool)
- Node.js MongoDB的安装 配置 数据库的CRUD操作 索引 学习笔记文档
- Node.js连接postgreSQL并进行数据操作
- Node.js 连接 MySQL 并进行数据库操作
- Node.js数据库操作之连接MySQL数据库(一)
- node.js 开发指南 – Node.js 连接 MySQL 并进行数据库操作
- Node.js中连接PostgreSql数据库的方法
- Node.js Express 从入门到菜鸟(三)——node.js+express+mongodb 操作数据库
- Node.js操作Firebird数据库教程
- Node.js 数据库 简单操作
- MFC+mongodb+nodejs 数据库的读取与写入操作
- node.js 开发指南 – Node.js 连接 MySQL 并进行数据库操作
- Node.js 连接 postgreSQL数据库
- 使用node.js中的async模块进行数据库的同步操作
- node.js操作数据库
- nodejs mongodb好友关系数据库设计与操作
- Node.js 连接 MySQL 并进行数据库操作
- nodejs mongoose 操作mongodb 数据库封装
- Node.js操作Firebird数据库教程