在数据库准备好之前,节点js文件退出

时间:2018-02-15 22:15:27

标签: javascript node.js database mongodb mongojs

我是节点编程的新手,我有以下问题:

为什么"数据库连接"和" handleDataResult"使用 node index.js 命令启动脚本时,无法在节点控制台中正确记录?

我的代码仅记录"没有回调"并立即退出。

const mongojs = require('mongojs');
var url = "mongodb://<username>:<password>@ds237748.mlab.com:37748/anbieter";
var db = mongojs(url);
var mycollection = db.collection('Anbieter');

db.on('connect', function () {
    console.log('database connected')
});

db.mycollection.find({}, handleDataResult);

var handleDataResult = function (err, docs){
  console.log("handleDataResult");
}

console.log("no callback");

1 个答案:

答案 0 :(得分:0)

Node.js是异步的。将代码放在数据库连接函数中。

const mongojs = require('mongojs');
var url = "mongodb://<username>:<password>@ds237748.mlab.com:37748/anbieter";
var db = mongojs(url);
var mycollection = db.collection('Anbieter');
db.on('connect', function () {
    console.log('database connected')
    db.mycollection.find({}, handleDataResult);
});

var handleDataResult = function (err, docs){
    console.log("handleDataResult");
}

console.log("no callback");