利用Node.js连接postgresql

一、首先安装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)

});
  • 3
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值