无法运行"发现"在Node.js应用程序中使用MongoClient在远程mongodb集合中进行查询

时间:2015-08-07 19:13:48

标签: node.js mongodb express

var express = require("express");
var bodyParser = require('body-parser');
var path    = require("path");
var ObjectId = require('mongodb').ObjectID;
var MongoClient = require('mongodb').MongoClient,
  format = require('util').format;
var uri = 'mongodb://ac-00072810.devapollogrp.edu:27017/devdb';

MongoClient.connect(uri,function(err,db){

    db.collection('TransactionStatus',function(err,collection){

        if(err){
            throw err;
        }
        else{
            collection.find({}).forEach(function(err,doc){
                console.log(doc);
            });
        }
    });
});

获取错误:

[apol@ac-00067394 nodejs-testapp]$ node Server.js
body-parser deprecated bodyParser: use individual json/urlencoded 
middlewares Server.js:15:9
body-parser deprecated undefined extended: provide extended option 
node_modules/body-parser/index.js:105:29
Running at Port 3001
undefined

(注:mongodb版本:3.0.2,节点版本:0.12.7,快递版本:4.12.4)

从mongo shell我能够成功获得所有细节。但是当我尝试使用mongoClient形式获取数据时,应用程序会收到错误" undefined"。我尝试了所有可能性。但我不知道自己做错了什么。

提前感谢您的帮助:)

1 个答案:

答案 0 :(得分:0)

一眼就看出你的[forEach][1]行为错误了。传递给forEach的回调分别接受三个参数:currentValue,index和array,因为它是核心Javascript函数而不是特定于Node的(这就是为什么你可能跟随err,{ {1}}惯例)。

doc区块中尝试此操作:

else