Node.js TypeError:无法读取属性';getAll';在带有mongoDB npm包的nodejs中的MongoCR.auth处为null
在使用node express和mongodb时,我遇到了一个奇怪的错误。我在谷歌上搜索解决方案,但到目前为止运气不好。所以在这里发帖。希望我在这里得到解决方案。 我已经把密码放好了。请帮忙。 节点代码: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
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链接。管理您的连接。驯服你的程序