新手问题:nodejs 每次操作mongo都要connect,close?
发布于 11 年前 作者 gogowo 11984 次浏览 最后一次编辑是 8 年前

var MongoClient = require(‘mongodb’).MongoClient;

MongoClient.connect(“mongodb://localhost:27017/integration_test”, function(err, db) { test.equal(null, err); test.ok(db != null);

db.collection(“replicaset_mongo_client_collection”).update({a:1}, {b:1}, {upsert:true}, function(err, result) { test.equal(null, err); test.equal(1, result);

db.close();
test.done();

}); }); 这样太不科学了把

11 回复

用mongoose等模型工具来写,能省心不少 …

恩! 我看看,谢谢。 var db = MongoClient.connect(“mongodb://localhost:27017/integration_test”); 我试着这样写,但是报错了,大家是怎么做的了?每次都connect,close吗?为什么这么做了?

为啥不科学,挺科学的

新手不懂,为啥呢?给我讲讲撒

能不用回调方式来连接数据库吗

数据库有最大连接数的限制

用链接池吧, nodejs不适合使用短连接, 用连接池只需要维护这个连接池就好了

恩,用mongo 是为了简便,结果发现比mysql还麻烦,还是决定用mysql了,mysql2预处理,链接池这些都有

恩 这个知道

把所有数据库操作写在mongo.open的回调里面,不用一直开关

@gogowo 这样写,返回的不是db对象,而是一个promise对象,得使用then去取db对象

回到顶部