在nodejs中为什么mongodb会影响到generator-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

在nodejs中为什么mongodb会影响到generator

2016-06-14 17:21:35 2535 1

我在项目中使用nodejs中的generator对mongodb进行操作,但是实验发现只要mongodb的连接不关闭,那么即便generator的done变成true了,程序也不会退出,请各位大侠解惑。
下面的代码中只要把所有的db.close()注释掉,就会出现generator的done为true了,但是程序依然不退出的情况。

var mongodb = require('mongodb');
var db = null;
function* DO(){
    try{
        db = yield connectMongodb();
        var collection = db.collection('userStruct');
        console.log('collection');
        var res = yield findSomething(collection, db);
        console.log('res', res);
    }catch(e){
        console.log('err', e);
        if(db){
            db.close();
        }
    }
}
var a = DO();
console.log('first', a.next());

function connectMongodb(){
    var mongoClient = mongodb.MongoClient;

    var DB_CONN_STR = 'mongodb://127.0.0.1:27017/jue';

    mongoClient.connect(DB_CONN_STR, function(err, db){
        if(err){
            a.throw(err);
        }else{
            console.log('connect', a.next(db));}
        }
    })
}
function findSomething(collection, db){
    collection.find({test:1}).toArray(function(err, retArr){
        if(err){
            a.throw(err);
        }else{
            console.log('in find');
            db.close();
            console.log('find', a.next(retArr));
        }
    })
}
取消 提交回答
全部回答(1)
  • 蛮大人123
    2019-07-17 19:38:18

    yield 后面你应该接一个 promise

    0 0
相关问答

1

回答

有没有FC里使用mongoose库连接操作mongoDB的最佳实践代码

2022-11-09 15:52:06 86浏览量 回答数 1

1

回答

集成mongodb,需要引入哪些版本的jar包?报错

2020-06-15 19:21:40 274浏览量 回答数 1

1

回答

mongodb中 findOneAndUpdate 如何使用:报错

2020-06-09 11:18:05 693浏览量 回答数 1

1

回答

nodejs连接mongodb不成功的问题

2016-06-15 11:41:48 5263浏览量 回答数 1

1

回答

mongodb+nodejs怎么做缓存?

2016-02-19 11:04:27 2043浏览量 回答数 1

1

回答

Node.js 单连接到 MongoDB

2016-02-19 17:06:31 2295浏览量 回答数 1

2

回答

nodejs操作Mongodb有没有插件

2016-02-14 13:58:45 2705浏览量 回答数 2

1

回答

nodejs怎么使用mongodb连接池

2016-02-14 15:58:32 3434浏览量 回答数 1

1

回答

Backbone.js项目访问MongoDB方式

2016-02-14 09:29:20 1589浏览量 回答数 1

1

回答

如何做mongodb+nodejs的缓存?

2016-01-30 16:43:35 2873浏览量 回答数 1
+关注
蛮大人123
我说我不帅他们就打我,还说我虚伪
文章
问答
问答排行榜
最热
最新
相关电子书
更多
Data as a Service - 数据即服务 -- MongoDB⾼级应⽤模式
立即下载
《深度解读MongoDB 最全面的增强版本4.4 新特性》
立即下载
Redis&MongoDB的同步、迁移以及混合云场景构建
立即下载