似乎我无法关闭与 Node.js 本机驱动程序的 MongoDB 连接。当我运行node replica.js
脚本时,它永远不会结束,因此由于某种原因无法关闭连接。
这是代码。这是一个副本集,但我认为这不是问题:
var mongodb = require('mongodb')
, Db = mongodb.Db
, Server = mongodb.Server
, ReplSet = mongodb.ReplSet;
// Replica set
var replSet = new ReplSet( [
new Server('localhost', 27017), // Primary
new Server('localhost', 27018), // Secondary
new Server('localhost', 27016), // Secondary
],
{ rs_name: 'replica', read_secondary: true }
);
var db = new Db('test', replSet, { native_parser: true, w: 1 });
// Opening
db.open(function (err, db) {
if (err) console.error(err);
db.close();
});
连接到单个 mongod 实例工作得很好,连接关闭并且脚本结束,不需要(由 robertklep 建议)process.exit()
调用:
var mongodb = require('mongodb')
, Db = mongodb.Db
, Server = mongodb.Server;
// Single instance
var server = new Server('localhost', 27017):
var db = new Db('test', server, { native_parser: true, w: 1 });
// Opening
db.open(function (err, db) {
if (err) console.error(err);
db.close();
});