gpt4 book ai didi

javascript - MongoClient 类型错误

转载 作者:行者123 更新时间:2023-11-30 06:32:26 26 4
gpt4 key购买 nike

我是 NodeJS 新手,也是 JS can-kicker 第一次尝试 DI。以下是我在决定问我之前看过的问题,因为它们显示相同的错误:[1] [2]

运行我的入口点产生:

this.client = new MongoClient(server);
^
TypeError: undefined is not a function

入口点

var config    = require('./config.json');
var Providers = require('./providers');
var providers = new Providers(config.db);
console.log(providers);

./providers/index.js

AssetProvider 和 UserProvider 都遇到同样的错误。我想我只需要展示一个。

module.exports = function Provider(dbConfig)
{
var UserProvider = require('./userProvider');
var AssetProvider = require('./assetProvider');

this.users = new UserProvider (dbConfig.name, dbConfig.host, dbConfig.port);
this.assets = new AssetProvider(dbConfig.name, dbConfig.host, dbConfig.port);
}

./providers/userProvider.js

标出问题行

var mongodb     = require('mongodb');
var MongoClient = mongodb.MongoClient;
var Server = mongodb.Server;
var ObjectID = mongodb.ObjectID;


var UserProvider = function (database, host, port) {
var server = new Server(host, port, { auto_reconnect: true });

// Error is here
this.client = new MongoClient(server);

this.client.open(function (error, client) {
this.db = client.db(database);
});
};

// ...a bunch of prototype stuff...
// ...

module.exports = UserProvider;

根据我在其他在线位置阅读的内容,我没有发现我的语法有任何问题。我尝试了以下声明...

function UserProvider(database, host, port)

相对于

var UserProvider = function(database, host, port)

我所做的其他一切都相当于用 Spanner 敲打汽车引擎。事实上,我根本不明白这里有什么问题,但我知道我只想跨文件组合对象,以便我的入口点可以通过单个对象轻松使用所有提供程序。

最佳答案

JohnnyHK 证明这是版本问题是正确的。

奇怪的是,运行npm update mongodb时错误并没有消失

但是,当我第二次运行 npm install mongodb 时,它确实消失了。代码没有改动,mongodb已经在本地node_modules 文件夹。即便如此,我怀疑这与 node_modules 中的实例和 NODE_PATH 中的实例之间的差异有关。

考虑到应该安装最新版本,我只是在猜测为什么 npm install 解决了这个问题。我所知道的是错误消失了,代码可以正常工作。

感谢您的评论!

关于javascript - MongoClient 类型错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16727008/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com