我一直在用 MongoDB 尝试关于 nodeJS 的 W3schools 教程。
当我尝试在 nodeJS 环境中实现此示例并使用 AJAX 调用调用该函数时,出现以下错误:
TypeError: db.collection is not a function
at c:\Users\user\Desktop\Web Project\WebService.JS:79:14
at args.push (c:\Users\user\node_modules\mongodb\lib\utils.js:431:72)
at c:\Users\user\node_modules\mongodb\lib\mongo_client.js:254:5
at connectCallback (c:\Users\user\node_modules\mongodb\lib\mongo_client.js:933:5)
at c:\Users\user\node_modules\mongodb\lib\mongo_client.js:794:11
at _combinedTickCallback (internal/process/next_tick.js:73:7)
at process._tickCallback (internal/process/next_tick.js:104:9)
请在下面找到我实现的代码:
var MongoClient = require('mongodb').MongoClient;
var url = "mongodb://localhost:27017/mytestingdb";
MongoClient.connect(url, function(err, db) {
if (err) throw err;
db.collection("customers").findOne({}, function(err, result) {
if (err) throw err;
console.log(result.name);
db.close();
});
});
请注意,只要执行命中,就会发生错误:
db.collection("customers").findOne({}, function(err, result) {}
另外,请注意(以防万一)我已经为 node JS ( npm install mongodb ) 安装了最新的 MongoDB 包,并且 MongoDB 版本是 MongoDB Enterprise 3.4.4,带有 MongoDB Node.js 驱动程序 v3.0.0-rc0。
原文由 Elie Asmar 发布,翻译遵循 CC BY-SA 4.0 许可协议
我遇到了同样的事情。在 package.json 中,将 mongodb 行更改为“mongodb”:“^2.2.33”。您需要通过删除 MongoDB Driver/ node_modules 或 etc 来卸载 mongodb npm,然后安装 npm 以安装此版本。
这为我解决了这个问题。似乎是一个错误或文档需要更新。