2017-02-09 1 views
1

최근에 내 컴퓨터를 Node.js 버전 7.5.0으로 업데이트했습니다 (잘 기억하는 경우 이전 버전 4를 사용하고있었습니다).MongoDB에서 모든 데이터를 읽을 때 콜백이 호출되지 않는 이유는 무엇입니까?

이전에 작동했던 응용 프로그램 중 하나가 더 이상 작동하지 않습니다. 문제는 다음과 같이 재현 될 수 있습니다.

var connectionString = 'mongodb://127.0.0.1:27017/blog', 
    mongojs = require('mongojs'), 
    db = mongojs(connectionString, ['articles']), 
    dataArticles = db.collection('articles'); 

db.on('error', function (err) { 
    console.log('A'); 
}); 

db.on('connect', function() { 
    console.log('B'); 
}); 

dataArticles.find({}).toArray(function (err, articles) { 
    console.log('C'); 
}); 

이 코드는 업그레이드하기 전에 정상적으로 작동했지만 지금은 콜백이 호출되지 않습니다. 오류가없고 아무것도 없습니다. 콘솔은 비어 있습니다. 나는에 의해 마지막 블록을 교체하는 경우

:

db.runCommand({ping: 1}, function (err, res) { 
    console.log('C'); 
}); 

동작은 변경되지 않습니다.

코드는 the official documentation과 매우 유사합니다. a similar question on StackOverflow이 있지만 데이터베이스에 대한 연결이 명시 적으로 열립니다. 제 경우에는 설명서와 마찬가지로 mongojs이 연결을 처리하도록합니다.

왜 콜백에 도달하지 않습니까?

+0

방금 ​​Node.js를 7.2.1에서 7.5.0으로 업그레이드했으며이 코드는 두 버전에서 모두 작동합니다. 'connectionString'을'mongodb : // localhost : 27017'로,'query'를'{}'로 변경했습니다. –

답변

0

Node.js 버전과 충돌하는 패키지와 관련된 간단한 문제입니다.

Node.js와 종속성 버전을 업데이트하는 동안 npm install을 실행하는 것을 잊어 버렸으므로 이전 패키지가 계속 사용됩니다.

mongojs 패키지의 이전 버전에 Node.js 7.5에서 실행할 때 콜백을 호출하지 못하게하는 문제가 있다고 상상해보십시오. 버그는 알 수 없습니다 (아무도 최신 버전의 Node.js에서 오래된 버전의 패키지를 실행하려고 시도하지 않았으므로). 또는 나중에 개정판에서 알려진 버그로 수정되었습니다.

관련 문제