Mongoose 닫히지 않은 연결을 열려고 합니다.
이것은 문제의 단순화된 버전이지만, 기본적으로 저는 mongoose로 2개의 mongodb 연결을 열려고 하는데 "닫히지 않은 연결을 열려고 합니다." 오류가 발생합니다.
코드 샘플:
var db1 = require('mongoose');
db1.connect('my.db.ip.address', 'my-db');
var db2 = require('mongoose');
db2.connect('my.db.ip.address', 'my-db');
db2.connection.close();
db1.connection.close();
어떻게 작동시킬지 생각해 보셨습니까?
connect()
DB에 대한 기본 연결을 엽니다.두 개의 서로 다른 연결을 원하기 때문에createConnection()
.
API 링크: http://mongoosejs.com/docs/api.html#index_Mongoose-createConnection
Raghuver 답변에 추가하기:
나는 또한 몽구스를 직접 사용하는 대신에 (아마도 당신은 이 게시물에서 이런 식으로 사용하고 있을 것입니다.
require('mongoose').model(...);
반환된 연결을 사용합니다.
var db = require('mongoose').connect('xxx', 'yyy');
db.model(...);
테스트를 실행하는 동안 이 문제가 발생합니다.
이것이 제가 그것을 해결하기 위해 한 일입니다.
//- in my app.js file.
try {
mongoose.connect('mongodb://localhost/userApi2'); //- starting a db connection
}catch(err) {
mongoose.createConnection('mongodb://localhost/userApi2'); //- starting another db connection
}
저는 유닛 테스트를 할 때 이 문제를 겪었습니다.mocha
.
문제는 제가 두 번째 테스트를 추가했을 때 발생했습니다.beforeEach
두 번 호출됩니다.
나는 이 코드로 이것을 해결했습니다.
const mongoose = require('mongoose');
describe('Your test suite', () => {
beforeEach( () => {
if (mongoose.connection.db) {
return; // or done();
} else {
// connect to mongodb
});
describe('GET /some-path', () => {
it('It should...', () => {
});
});
describe('POST /some-path', () => {
it('It should...', () => {
});
});
});
도움이 되길 바랍니다!
아직 닫히지 않은 기본 연결을 두 번 열려고 합니다.
대신 다음을 수행합니다.
var db = require('mongoose'); //note only one 'require' needed.
var connectionToDb1 = db.createConnection('my.db1.ip.address', 'my-db1');
var connectionToDb2 = db.createConnection('my.db2.ip.address', 'my-db2');
mongoose.disconnect(() => {
// here it would be possible "reset" models to fix
// OverwriteModelError errors
mongoose.models = {};
// here comes your logic like registering Hapi plugins
server.register(somePlugin, callback);
});
저는 오류 메시지를 입력하는 이 질문을 발견했고 제 문제는 조금 다르지만 Hapi를 사용하는 사람들에게 유용할 수 있다고 생각합니다.더 구체적으로 하피 + 휴식 하피 + 모카.
실행 시mocha
와 함께--watch
두 가지 모두에 직면한 옵션:OverwriteModelError
그리고.Error: Trying to open unclosed connection errors
.
간단한 해결책 -
Use mongoose.createConnection() instead of mongoose.connect()
Its occurs because of version issue
언급URL : https://stackoverflow.com/questions/15712226/mongoose-trying-to-open-unclosed-connection
'source' 카테고리의 다른 글
ios 시뮬레이터: 앱을 닫는 방법 (0) | 2023.05.09 |
---|---|
Postgre를 삭제하는 방법명령줄을 통한 SQL 데이터베이스 (0) | 2023.05.09 |
Swift 4에서 String 하위 문자열을 사용하려면 어떻게 해야 합니까? 'substring(to:)'은 더 이상 사용되지 않습니다.문자열 슬라이싱 첨자를 '부분 범위 from' 연산자와 함께 사용하십시오. (0) | 2023.05.09 |
십진법의 목적은 무엇입니까?1, 10진수.0, 10진수.마이너스 원 인.그물 (0) | 2023.05.09 |
현재 Git 분기를 마스터 분기로 설정 (0) | 2023.05.09 |