저는 NodeJS 초보자이고 JS can-kicker가 DI를 처음 시도했습니다.MongoClient TypeError
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);
: [2]
[1] 내 진입 점 수율을 실행 : 여기가 같은 오류를 표시하기 때문에, 내 물어 결정하기 전에 바라 보았다 질문입니다 ./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;
를 표시 . 내가 렌치와 자동차 엔진을 두드림과 비교했다 않았다 다른
var UserProvider = function(database, host, port)
모든 반대로 나는 ...
function UserProvider(database, host, port)
을 다음과 같은 선언을 시도했습니다. 진실은, 나는 여기서 무엇이 잘못 되었는가를 간단히 이해하지 못한다. 그러나 나는 단지 파일 전체에 걸쳐 객체의 구성을 만들어 내 진입 점이 단일 객체를 통해 모든 공급자를 쉽게 사용할 수 있다는 것을 알고있다.
이것이 맞는지 확실하지 않지만 2 행에서 var를 MongoClient가 아닌 다른 이름으로 변경하십시오. – Jesta
MongoDB 드라이버의 최신 버전을 실행하고 있습니까? '몽고 클라이언트 (MongoClient) '는 최근에 추가 된 것이다. – JohnnyHK
@JohnnyHK : 방금 nym update mongodb을 해고했습니다. 'npm show mongodb version'은 1.3.6을보고하므로 괜찮을 것입니다. 오류가 계속 발생합니다. –