为什么我的nodejs脚本没有退出shell?

时间:2013-10-31 09:41:12

标签: node.js mongojs

我的代码如下所示:

#!/bin/env node

var collection = require('mongojs')('test').collection('test');

collection.findOne({}, function(err, doc) {
    console.log(err, doc);
});

当我运行此脚本时,它显示:

$ node test.js
null null

但脚本没有退出。我需要“CTRL + C”才能退出。任何人都知道如何解决它?

[更新]

我发现如果我使用原生mongodb而不是mongojs,那就没问题了:

#!/bin/env node

var client = require('mongodb');

client.connect('mongodb://127.0.0.1:27017/hatch', function(err, db) {
    if (err) throw err;
    var collection = db.collection('documents');

    collection.find().toArray(function(err, results) {
        console.dir(results);
        db.close();
    });
});

这是一个mongojs问题吗?

1 个答案:

答案 0 :(得分:6)

您必须关闭数据库连接

var mongojs = require('mongojs');
var db = mongojs('test');
var collection = db.collection('test');

collection.findOne({}, function(err, doc) {
    console.log(err, doc);
    db.close();
});