-
[ERROR] mongoskin에서 TypeError: Cannot read property 'apply' of undefined개발/JS 2018. 6. 25. 22:03
TypeError: Cannot read property 'apply' of undefined
at EventEmitter.<anonymous> (C:\Users\USER\Desktop\개인공부\book-nodejs\blog-project\node_modules\mongoskin\lib\collection.js:51:21)
at Object.onceWrapper (events.js:317:30)
at emitTwo (events.js:126:13)
at EventEmitter.emit (events.js:214:7)
at C:\Users\USER\Desktop\개인공부\book-nodejs\blog-project\node_modules\mongoskin\lib\utils.js:134:27
at result (C:\Users\USER\Desktop\개인공부\book-nodejs\blog-project\node_modules\mongodb\lib\utils.js:414:17)
at executeCallback (C:\Users\USER\Desktop\개인공부\book-nodejs\blog-project\node_modules\mongodb\lib\utils.js:406:9)
at C:\Users\USER\Desktop\개인공부\book-nodejs\blog-project\node_modules\mongodb\lib\mongo_client.js:272:5
at connectCallback (C:\Users\USER\Desktop\개인공부\book-nodejs\blog-project\node_modules\mongodb\lib\mongo_client.js:946:5)
책에 있는 프로젝트를 따라하던 중, 다음과 같은 에러가 발생했습니다.
에러 로그 중, 두번째 줄을 보니
C:\Users\USER\Desktop\개인공부\book-nodejs\blog-project\node_modules\mongoskin\lib\collection.js:51:21
설치했던 mongoskin 패키지 안에서 뭔가 문제가 발생한 듯한 느낌이 들었습니다.
collection.js 파일을 열어 51번째 줄을 확인해보니..
SkinCollection.prototype._open = function(callback) {
var collection_args = this._collection_args.concat([callback]);
this._skin_db.open(function(err, db) {
if(err) return callback(err);
db.collection.apply(db, collection_args); //51번째 줄
});
}
위와 같은 코드가 있었고 아, TypeError: Cannot read property 'apply' of undefined 의 의미를 깨달았습니다.
즉, db.collection 객체에 apply라는 속성이 정의가 안된것!
음, 근데 왜 정의가 안되었을까? 를 생각해보다가 혹시 버전문제인가 생각했습니다.
mongoskin은 mogodb를 의존하므로 한번 mongoskin의 package.json을 확인해봤습니다.
"mongodb": "^2.0"
mongoskin 패키지의 mongodb는 2.x.x 버전까지 유효했고, 이 프로젝트에 설치된 mongodb는 가장 최신버전인 3.0.10 입니다.
그래서 현재 mongodb의 가장 안정된 버전이면서 2.x.x인 버전으로 다운그레이드했더니 에러없이 정상적으로 실행됩니다..!!!
> npm install mongodb@2.2.35
'개발 > JS' 카테고리의 다른 글
[Mongo] 간단한 몽고DB 명령어 (0) 2018.07.09 [ERROR] Uncaught TypeError: Cannot read property 'equal' of undefined (0) 2018.07.09 [error] Failed to load c++ bson extension, using pure JS version (0) 2018.06.24 [npm] Working with package.json (0) 2018.04.16 [npm] 전역에 패키지를 설치/삭제해보기 (0) 2018.04.16