Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js TypeError:无法读取属性';getAll';在带有mongoDB npm包的nodejs中的MongoCR.auth处为null_Node.js_Mongodb_Express_Npm - Fatal编程技术网

Node.js TypeError:无法读取属性';getAll';在带有mongoDB npm包的nodejs中的MongoCR.auth处为null

Node.js TypeError:无法读取属性';getAll';在带有mongoDB npm包的nodejs中的MongoCR.auth处为null,node.js,mongodb,express,npm,Node.js,Mongodb,Express,Npm,在使用node express和mongodb时,我遇到了一个奇怪的错误。我在谷歌上搜索解决方案,但到目前为止运气不好。所以在这里发帖。希望我在这里得到解决方案。 我已经把密码放好了。请帮忙。 节点代码: var fs = require('fs'); var mongo = require("mongodb"), Db = mongo.Db, Server = mongo.Server; var express = require("express"); var m

在使用node express和mongodb时,我遇到了一个奇怪的错误。我在谷歌上搜索解决方案,但到目前为止运气不好。所以在这里发帖。希望我在这里得到解决方案。 我已经把密码放好了。请帮忙。 节点代码:

 var fs = require('fs');
 var mongo = require("mongodb"),
     Db = mongo.Db,
     Server = mongo.Server;
 var express = require("express");
 var mongoClient = mongo.MongoClient;

 var app = express();
 var port = process.env.PORT || 8080;
 app.get('/putdata', function (req, res) {
     var db = new Db('local', new Server('localhost', 27017));
     var countries = JSON.parse(fs.readFileSync("countries.json", 'utf8'));
     console.log(countries.countries[0]);
     db.authenticate('testuser', 'test@123', function (err, result) {
     db.open(function (err, data) {
         var obj = { name: "xyz" };
         data.collection('test').insert(obj, { safe: true }, function (err, result) {
             if (err) {
                 res.send({ 'error': 'An error has occurred' });
             } else {
                 console.log('Success: ' + JSON.stringify(result));
                 res.send(result[0]);
             }

         });
     });
    .
    .
    .

this is how i created mongodb user:

> db.getUsers()
[
        {
                "_id" : "test.testuser",
                "user" : "testuer",
                "db" : "test",
                "roles" : [
                        {
                                "role" : "readWrite",
                                "db" : "test"
                        }
                ]
        }
]

Error when i hit localhost:3000/putdata :
    TypeError: Cannot read property 'getAll' of null
   at MongoCR.auth (E:\Users\Documents\Visual Studio 2013\Projects\PoC\Server\node_modules\mongodb\node_modules\mongodb-core\lib\auth\mongocr.js:56:25)
   at Server.auth (E:\Users\Documents\Visual Studio 2013\Projects\PoC\Server\node_modules\mongodb\node_modules\mongodb-core\lib\topologies\server.js:1032:40)
   at Server.auth (E:\Users\Documents\Visual Studio 2013\Projects\PoC\Server\node_modules\mongodb\lib\server.js:379:22)
   at authenticate (E:\Users\Documents\Visual Studio 2013\Projects\PoC\Server\node_modules\mongodb\lib\db.js:1375:21)
   at Db.authenticate (E:\Users\Documents\Visual Studio 2013\Projects\PoC\Server\node_modules\mongodb\lib\db.js:1412:44)
   at E:\Users\Documents\Visual Studio 2013\Projects\PoC\Server\app.js:29:8
   at Layer.handle [as handle_request] (E:\Users\Documents\Visual Studio 2013\Projects\PoC\Server\node_modules\express\lib\router\layer.js:82:5)
   at next (E:\Users\Arun\Documents\Visual Studio 2013\Projects\PoC\Server\node_modules\express\lib\router\route.js:100:13)
   at Route.dispatch (E:\Users\Documents\Visual Studio 2013\Projects\PoC\Server\node_modules\express\lib\router\route.js:81:3)
   at Layer.handle [as handle_request] (E:\Users\Documents\Visual Studio 2013\Projects\PoC\Server\node_modules\express\lib\router\layer.js:82:5)
如果您看到该路径,则它位于mongodb包中。所以我怀疑问题出在npm mongodb包中。请建议。
谢谢

我通过关闭每个打开的数据库连接解决了类似的问题。每次执行
db.open()
时,只需添加
db.close()

外国实体的管理层正在破坏您在其他功能中的db链接。管理您的连接。驯服你的程序