@@ -15,6 +15,11 @@ var currentVersion = '1.0';
15
15
var fs = require ( 'fs' ) ;
16
16
var path = require ( 'path' ) ;
17
17
18
+ var MongoClient = require ( 'mongodb' ) . MongoClient ;
19
+ var connectOption = {
20
+ useUnifiedTopology : true ,
21
+ } ;
22
+ var client ;
18
23
var db ;
19
24
var cipher = require ( './cipher' ) ;
20
25
@@ -23,6 +28,9 @@ var configFile = path.join(dirName, 'management_api.toml');
23
28
var sampleServiceFile = path . resolve ( dirName , '../environment.js' ) ;
24
29
25
30
function prepareDB ( next ) {
31
+ if ( dbURL . indexOf ( 'mongodb://' ) !== 0 ) {
32
+ dbURL = 'mongodb://' + dbURL ;
33
+ }
26
34
if ( fs . existsSync ( cipher . astore ) ) {
27
35
cipher . unlock ( cipher . k , cipher . astore , function cb ( err , authConfig ) {
28
36
if ( ! err ) {
@@ -34,20 +42,34 @@ function prepareDB(next) {
34
42
} else {
35
43
log . error ( 'Failed to get mongodb auth:' , err ) ;
36
44
}
37
- db = require ( 'mongojs' ) ( dbURL , [ 'services' , 'infos' , 'rooms' ] ) ;
38
- next ( ) ;
45
+ MongoClient . connect ( dbURL , connectOption , function ( err , cli ) {
46
+ if ( ! err ) {
47
+ client = cli ;
48
+ db = client . db ( ) ;
49
+ next ( ) ;
50
+ } else {
51
+ console . error ( 'Failed to connect mongodb:' , err ) ;
52
+ }
53
+ } ) ;
39
54
} ) ;
40
55
} else {
41
- db = require ( 'mongojs' ) ( dbURL , [ 'services' , 'infos' , 'rooms' ] ) ;
42
- next ( ) ;
56
+ MongoClient . connect ( dbURL , connectOption , function ( err , cli ) {
57
+ if ( ! err ) {
58
+ client = cli ;
59
+ db = client . db ( ) ;
60
+ next ( ) ;
61
+ } else {
62
+ console . error ( 'Failed to connect mongodb:' , err ) ;
63
+ }
64
+ } ) ;
43
65
}
44
66
}
45
67
46
68
function upgradeH264 ( next ) {
47
- db . rooms . find ( { } ) . toArray ( function ( err , rooms ) {
69
+ db . collection ( ' rooms' ) . find ( { } ) . toArray ( function ( err , rooms ) {
48
70
if ( err ) {
49
71
console . log ( 'Error in getting rooms:' , err . message ) ;
50
- db . close ( ) ;
72
+ client . close ( ) ;
51
73
return ;
52
74
}
53
75
if ( ! rooms || rooms . length === 0 ) {
@@ -83,7 +105,7 @@ function upgradeH264(next) {
83
105
}
84
106
} ) ;
85
107
86
- db . rooms . save ( room , function ( e , saved ) {
108
+ db . collection ( ' rooms' ) . updateOne ( { _id : room . _id } , room , function ( e , saved ) {
87
109
if ( e ) {
88
110
console . log ( 'Error in upgrading room:' , room . _id , e . message ) ;
89
111
}
@@ -97,28 +119,28 @@ function upgradeH264(next) {
97
119
}
98
120
99
121
function checkVersion ( next ) {
100
- db . infos . findOne ( { _id : 1 } , function cb ( err , info ) {
122
+ db . collection ( ' infos' ) . findOne ( { _id : 1 } , function cb ( err , info ) {
101
123
if ( err ) {
102
124
console . log ( 'mongodb: error in query info' ) ;
103
- return db . close ( ) ;
125
+ return client . close ( ) ;
104
126
}
105
127
if ( info ) {
106
128
if ( info . version === '1.0' ) {
107
129
next ( ) ;
108
130
}
109
131
} else {
110
- db . services . findOne ( { } , function cb ( err , service ) {
132
+ db . collection ( ' services' ) . findOne ( { } , function cb ( err , service ) {
111
133
if ( err ) {
112
134
console . log ( 'mongodb: error in query service' ) ;
113
- return db . close ( ) ;
135
+ return client . close ( ) ;
114
136
}
115
137
var upgradeNext = function ( next ) {
116
138
upgradeH264 ( function ( ) {
117
139
info = { _id : 1 , version : currentVersion } ;
118
- db . infos . save ( info , function cb ( e , s ) {
140
+ db . collection ( ' infos' ) . save ( info , function cb ( e , s ) {
119
141
if ( e ) {
120
142
console . log ( 'mongodb: error in updating version' ) ;
121
- return db . close ( ) ;
143
+ return client . close ( ) ;
122
144
}
123
145
next ( ) ;
124
146
} ) ;
@@ -156,15 +178,15 @@ function checkVersion (next) {
156
178
}
157
179
158
180
function prepareService ( serviceName , next ) {
159
- db . services . findOne ( { name : serviceName } , function cb ( err , service ) {
181
+ db . collection ( ' services' ) . findOne ( { name : serviceName } , function cb ( err , service ) {
160
182
if ( err || ! service ) {
161
183
var crypto = require ( 'crypto' ) ;
162
184
var key = crypto . pbkdf2Sync ( crypto . randomBytes ( 64 ) . toString ( 'hex' ) , crypto . randomBytes ( 32 ) . toString ( 'hex' ) , 4000 , 128 , 'sha256' ) . toString ( 'base64' ) ;
163
185
service = { name : serviceName , key : cipher . encrypt ( cipher . k , key ) , encrypted : true , rooms : [ ] , __v : 0 } ;
164
- db . services . save ( service , function cb ( err , saved ) {
186
+ db . collection ( ' services' ) . save ( service , function cb ( err , saved ) {
165
187
if ( err ) {
166
188
console . log ( 'mongodb: error in adding' , serviceName ) ;
167
- return db . close ( ) ;
189
+ return client . close ( ) ;
168
190
}
169
191
saved . key = key ;
170
192
next ( saved ) ;
@@ -222,7 +244,7 @@ prepareDB(function() {
222
244
var sampleServiceKey = service . key ;
223
245
console . log ( 'sampleServiceId:' , sampleServiceId ) ;
224
246
console . log ( 'sampleServiceKey:' , sampleServiceKey ) ;
225
- db . close ( ) ;
247
+ client . close ( ) ;
226
248
227
249
writeSampleFile ( sampleServiceId , sampleServiceKey ) ;
228
250
} ) ;
0 commit comments