32 lines
898 B
JavaScript
32 lines
898 B
JavaScript
'use strict';
|
|
|
|
const { inject } = require('./Provider');
|
|
const mongoose = require('mongoose');
|
|
|
|
process.on('SIGTERM', () => {
|
|
mongoose.disconnect();
|
|
process.exit(0);
|
|
});
|
|
process.on('SIGINT', () => {
|
|
mongoose.disconnect();
|
|
process.exit(0);
|
|
});
|
|
|
|
module.exports = inject(async function connect2db(SysConfig) {
|
|
mongoose.set('useCreateIndex', true);
|
|
const { DB_USER_NAME, DB_PASSWD, DB_HOST, DB_PORT, DB_NAME } = SysConfig;
|
|
const db = mongoose.connection;
|
|
db.on('error', mylog.error);
|
|
db.once('open', function() {
|
|
mylog.info('数据库连接成功...');
|
|
});
|
|
mylog.info('开始连接数据库...');
|
|
await mongoose.connect(`mongodb://${DB_USER_NAME}:${DB_PASSWD}@${DB_HOST}:${DB_PORT}/${DB_NAME}`, {
|
|
useNewUrlParser: true,
|
|
bufferMaxEntries: 0,
|
|
autoReconnect: true,
|
|
useFindAndModify: false
|
|
});
|
|
return db;
|
|
});
|