Server: Use ES6 promise for mongoose/node-oatuh2-server
[oweals/peertube.git] / server / initializers / database.js
1 'use strict'
2
3 const config = require('config')
4 const mongoose = require('mongoose')
5
6 const logger = require('../helpers/logger')
7
8 // Bootstrap models
9 require('../models/user')
10 require('../models/oauth-client')
11 require('../models/oauth-token')
12 require('../models/pods')
13 require('../models/video')
14 // Request model needs Video model
15 require('../models/request')
16
17 const dbname = 'peertube' + config.get('database.suffix')
18 const host = config.get('database.host')
19 const port = config.get('database.port')
20
21 const database = {
22   connect: connect
23 }
24
25 function connect () {
26   mongoose.Promise = global.Promise
27   mongoose.connect('mongodb://' + host + ':' + port + '/' + dbname)
28   mongoose.connection.on('error', function () {
29     throw new Error('Mongodb connection error.')
30   })
31
32   mongoose.connection.on('open', function () {
33     logger.info('Connected to mongodb.')
34   })
35 }
36
37 // ---------------------------------------------------------------------------
38
39 module.exports = database