使用模块Q的promise机制实现数据库操作的同步问题

附上上一篇文章链接:
node.js对mongodb的连接&增删改查(附async同步流程控制)(上)

上一篇文章说到,关于耦合度很高的对数据库的连续操作,如何实现同步流程控制呢?使用了async模块的waterfall不顶用。只能使用q模块的proimise方式啦。果然好用。

1.install

npm install q --save

2.require

var Q=require('q');

3.重写数据库CRUD操作方法

/**
 * 创建数据库服务器并开发名为databaseName的数据库
 * @param host ip
 * @param port 端口
 * @param databaseName
 * @return  打开失败返回-1 ,成功返回database
 */
function openDatabase(host,port,databaseName,collectionName){
    //创建数据库所在的服务器

    var deferred = Q.defer();
    var server = new mongo.Server(host, port, {auto_reconnect: true});
    var db = new mongo.Db(databaseName, server, {safe: true});
    db.open(function (err, db) {
        if (err) {
            console.log('打开数据库失败');
            deferred.reject(err);
        }
        else {
            console.
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值