어제 저는 MongoDB 자바 스크립트 드라이버를 사용하기 시작했습니다.MongoDB '서버 소켓이 닫혔습니다'& 수정 사항이 없습니다
문제가 발생했습니다. 오류가 계속 표시되지만 데이터는 계속 저장됩니다.
아래에서 처음에 DB에 연결하는 데 사용하는 자바 스크립트를 볼 수 있으며 삽입 쿼리가 시작됩니다. 삽입 쿼리, 콘솔 출력을 시작하지 않을 경우 : 삽입 쿼리를 실행할 때 서버
에 제대로 연결
서버를 성공적으로
에서 끊김을하지만, 오류가 리턴됩니다.
제대로 서버에 연결
{ [MongoError: server localhost:27017 sockets closed]
이름 : 'MongoError', 서버에서
message: 'server localhost:27017 sockets closed'}
끊김 성공적으로
어느 한 올바른 방향으로 날 지점 수 있을까요?
MongoClient.connect(db_default.db_url, function(err, db) {
console.log('Connected correctly to server');
if(err) {
console.log(err);
}
else {
mongoInsert(db, 'user', user_default, function(user_res) {
console.log(user_res);
});
}
db.close();
console.log('Disconnected from server successfully');
});
function mongoInsert(db, collection_name, data,cb) {
var collection = db.collection(collection_name);
collection.insert(data, function(err, res) {
if(err) {
console.log(err);
}
else {
console.log('Inserted into the ' + collection_name + ' collection');
cb(res);
}
});
}
비동기. 연결 콜백은 insert 함수를 호출하고 실제로 삽입이 실행되기 전에 즉시 데이터베이스에 대한 연결을 닫습니다. 콜백에서 데이터베이스 연결을 닫으십시오. – wdberkeley
@wdberkeley 삽입이 실행되기 전에 연결이 닫히면 데이터가 어떻게 저장됩니까? –
@SasankaPanguluri 이것은 비 결정적이지만 삽입이 발생하면 데이터베이스 드라이버가 요청을 데이터베이스에 전달한 다음 연결을 닫는 경우가 발생합니다. 따라서 데이터베이스는 삽입을 처리하지만 소켓이 닫혀서 상호 작용을 성공적으로 완료 할 수 없습니다. – Eoin