一、首先安装postgresql模块
npm install pg
二、利用pg模块连接数据库
主要有两种方式,1)使用连接池;2)连接客户端。
1、使用连接池进行数据库操作
//引入pg模块
var pg = require("pg");
// 数据库配置
var config = {
database:"postgres", //数据库名称
user:"postgres", //用户名
password:"123456", //密码
port:5432, //端口号
// 扩展属性
max:20, // 连接池最大连接数
idleTimeoutMillis:3000 // 连接最大空闲时间 3s
};
// 创建连接池
var pool = new pg.Pool(config);
// 查询
pool.connect(function(err, client, done) {
if(err) {
return console.error('数据库连接出错', err);
}
// 利用查询字符串进行查询
var sqlString = "SELECT * from users";
client.query(sqlString , function(err, result) {
done();// 释放连接(将其返回给连接池)
if(err) {
return console.error('查询出错', err);
}
console.log(result.rows[0]);
});
});
2、连接客户端进行数据库操作
//引入pg模块
var pg = require('pg');
// 数据库配置
var config = {
user:"postgres",
database:"postgres",
password:"123456",
port:5432,
// 扩展属性
max:20, // 连接池最大连接数
idleTimeoutMillis:3000 // 连接最大空闲时间 3s
};
//创建客户端
var client = new pg.Client(config);
// 查询
client.connect(function(err) {
if(err) {
return console.error('连接postgreSQL数据库失败', err);
}
//利用查询字符串进行查询
var sqlString = 'SELECT * FROM users';
client.query(sqlString, function(err, data) {
if(err) {
return console.error('查询失败', err);
}else{
console.log(data.rows[0]);
}
client.end();
});
});
三、利用Express添加数据库查询API
1、postgreSql.js 创建数据库操作模块
var pg = require("pg");
function PostgreSql() {
// 数据库配置
var config = {
user:"postgres",
database:"postgres",
password:"123456",
port:5432,
// 扩展属性
max:20, // 连接池最大连接数
idleTimeoutMillis:3000 // 连接最大空闲时间 3s
};
// 创建连接池
var pool = new pg.Pool(config);
this.searchData = function (sqlString,callback) {
// "SELECT * from users"
// 查询
pool.connect(function(err, client, done) {
if(err) {
return console.error('数据库连接出错', err);
}
client.query(sqlString, function(err, result) {
done();// 释放连接(将其返回给连接池)
if(err) {
return console.error('查询出错', err);
}
return callback(result.rows);
});
});
}
}
module.exports = PostgreSql;
2、server.js 利用express添加数据库查询接口
var util = require('util');
var express = require('express');
var app = express();
var PostgreSql = require("./postgreSql");
var postgreSql = new PostgreSql();
app.get('/', function (req, res) {
res.send('Hello World'+ req.hostname);
});
app.get('/search', function (req, res) {
var sqlString = "select * from users";
postgreSql.searchData(sqlString,function (searchData) {
res.send(JSON.stringify(searchData));
});
});
var server = app.listen(8081, function () {
var host = server.address().address;
var port = server.address().port;
console.log("应用实例,访问地址为 http://%s:%s", host, port)
});