우선, 직접 문제를 해결하지 않겠습니다. 나는 위에서 나의 의견을 설명하려고 노력할 것이다.
나는 내 프로젝트 중 하나에서 비슷한 시나리오를 가졌습니다. 하지만 MongoDB를 사용했습니다.
var MongoClient = require('mongodb').MongoClient
var url = process.env.MONGO_URI
var collection = 'shortlinks'
var state = {
db: null
}
exports.connect = function (done) {
if (state.db) return done()
MongoClient.connect(url, function (err, db) {
if (err) return done(err)
state.db = db
done()
})
}
exports.get = function() {
return state.db
}
...
and some other methods
그리고 나는이 줄을 동일한 데이터베이스 연결을 위해 다른 장소에서이 모듈에 액세스 할 :
var db = require('../models/db')
내가 getter 메소드와 같은 DB 인스턴스에 액세스 할 수 있습니다 내 DB 모델은 다음과 같습니다 다른 방법들도 있습니다.
변수를 모듈로 내보내지 말아야한다고 생각합니다. 대신이 함수를 내 보냅니다. 변수를 실제로 내보내려면 getter 함수를 작성하고 getter 함수를 내 보냅니다. – hisener
답변으로 의견을 게시하고 예제를 제공해 주시겠습니까? – Azevedo
db handler를 매개 변수로 전달해야한다는 것을 의미합니까? 'module.exports.queryDB = function (dbHandler)'와 비슷합니다. – Azevedo