schangxiang@126.com
2025-09-19 0821aa23eabe557c0d9ef5dbe6989c68be35d1fe
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
const dbProxy = require('./dbProxy');
 
let Caches = null;
 
module.exports = function (config, app) {
    if (Caches) {
        return Caches;
    }
 
    let proxy = new dbProxy(config);
 
    proxy.on('connect', () => {
        app.logger.info(`[egg-mongodb] db connected succeeded.`);
    });
 
    proxy.on('reconnect', err => {
        err && app.logger.error(`[egg-mongodb] db connect error & auto reconnected. %j`, err && err.stack);
 
        app.logger.warn(`[egg-mongodb] db reconnected.`);
    });
 
    proxy.on('close', err => {
        if (err) {
            app.logger.error(`[egg-mongodb] db closed with error. %j`, err && err.stack);
        } else {
            app.logger.warn(`[egg-mongodb] db closed manually.`);
        }
 
        Caches = null;
 
        app.logger.warn('remove db connect caches');
    });
 
    app.beforeStart(async() => {
        app.logger.info(`[egg-mongodb] Connecting mongodb, config: %j`, config);
 
        return await proxy.connect();
    });
 
    return Caches = proxy;
};