[node.js] 완료되면 몽구스의 연결을 적절히 닫습니다.


Answers

다른 대답은 나를 위해 작동하지 않았다. mongoose.disconnect(); 를 사용해야했습니다 mongoose.disconnect(); 이 답에 명시된 바와 같이

Question

나는 몽구스를 연속적으로 실행하지 않는 스크립트에서 사용하고 있으며, 나는 매우 간단한 문제 인 것처럼 보이지만 아직 답을 찾을 수 없다. 간단히 말해서 mongoose 함수에 대한 호출을 만들어 내 nodejs 인스턴스가 멈추지 않고 mongodb에 요청을 보내면 Ctrl + c 또는 Program.exit ()와 같이 수동으로 kill해야합니다.

코드는 대략 다음과 같습니다.

var mongoose = require('mongoose');

// if my program ends after this line, it shuts down as expected, my guess is that the connection is not really done here but only on the first real request ?
mongoose.connect('mongodb://localhost:27017/somedb'); 

// define some models

// if I include this line for example, node never stop afterwards
var MyModel =  mongoose.model('MyModel', MySchema);

mongoose.disconnect ()에 호출을 추가하려고 시도했지만 결과는 없습니다. 그 외에 모든 것이 잘 작동합니다 (찾기, 저장, ...).

이 사람과 정확히 같은 문제입니다. 슬픈 듯이 답변을받지 못했습니다. https://groups.google.com/group/mongoose-orm/browse_thread/thread/c72cc1c51c76e661

감사

수정 : 그것은 기술적으로 올바른 답변을 수락하지만, 누군가가 다시이 문제를 다시 본 적이 있다면 mongoose 및 / 또는 mongodb 드라이버가 쿼리를 실행중인 경우에 물어 보면 실제로 연결을 닫지 않는 것 같습니다.

그것은 단절 호출을 전혀 기억하지 못한다. 일단 쿼리가 끝나면 실행하지 않는다. 그냥 던져 예외 또는 일종의 아무것도 귀하의 전화를 버리고, 실제로 연결을 닫지 마십시오.

거기에 당신이 가지고 있습니다 : 당신이 실제로 작동하기를 원한다면 disconnect ()를 호출하기 전에 모든 쿼리가 처리되었는지 확인하십시오.




4.4.2 버전을 사용 중이며 다른 답변도 나에게 도움이되지 않습니다. 그러나 useMongoClient 를 옵션에 추가하고 useMongoClient 변수에 넣으면 작동하는 것처럼 보였다.

var db = mongoose.connect('mongodb://localhost:27017/somedb', { useMongoClient: true })

//do stuff

db.close()