@@ -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
@@ -29,6 +34,9 @@ var sampleEntryName = (require(samplePackageJson).main || DEFAULT_SAMPLE_ENTRY);
29
34
var sampleServiceFile = path . resolve ( dirName , SAMPLE_RELATED_PATH , sampleEntryName ) ;
30
35
31
36
function prepareDB ( next ) {
37
+ if ( dbURL . indexOf ( 'mongodb://' ) !== 0 ) {
38
+ dbURL = 'mongodb://' + dbURL ;
39
+ }
32
40
if ( fs . existsSync ( cipher . astore ) ) {
33
41
cipher . unlock ( cipher . k , cipher . astore , function cb ( err , authConfig ) {
34
42
if ( ! err ) {
@@ -38,22 +46,36 @@ function prepareDB(next) {
38
46
+ '@' + dbURL ;
39
47
}
40
48
} else {
41
- log . error ( 'Failed to get mongodb auth:' , err ) ;
49
+ console . error ( 'Failed to get mongodb auth:' , err ) ;
42
50
}
43
- db = require ( 'mongojs' ) ( dbURL , [ 'services' , 'infos' , 'rooms' ] ) ;
44
- next ( ) ;
51
+ MongoClient . connect ( dbURL , connectOption , function ( err , cli ) {
52
+ if ( ! err ) {
53
+ client = cli ;
54
+ db = client . db ( ) ;
55
+ next ( ) ;
56
+ } else {
57
+ console . error ( 'Failed to connect mongodb:' , err ) ;
58
+ }
59
+ } ) ;
45
60
} ) ;
46
61
} else {
47
- db = require ( 'mongojs' ) ( dbURL , [ 'services' , 'infos' , 'rooms' ] ) ;
48
- next ( ) ;
62
+ MongoClient . connect ( dbURL , connectOption , function ( err , cli ) {
63
+ if ( ! err ) {
64
+ client = cli ;
65
+ db = client . db ( ) ;
66
+ next ( ) ;
67
+ } else {
68
+ console . error ( 'Failed to connect mongodb:' , err ) ;
69
+ }
70
+ } ) ;
49
71
}
50
72
}
51
73
52
74
function upgradeH264 ( next ) {
53
- db . rooms . find ( { } ) . toArray ( function ( err , rooms ) {
75
+ db . collection ( ' rooms' ) . find ( { } ) . toArray ( function ( err , rooms ) {
54
76
if ( err ) {
55
77
console . log ( 'Error in getting rooms:' , err . message ) ;
56
- db . close ( ) ;
78
+ client . close ( ) ;
57
79
return ;
58
80
}
59
81
if ( ! rooms || rooms . length === 0 ) {
@@ -89,7 +111,7 @@ function upgradeH264(next) {
89
111
}
90
112
} ) ;
91
113
92
- db . rooms . save ( room , function ( e , saved ) {
114
+ db . collection ( ' rooms' ) . updateOne ( { _id : room . _id } , room , function ( e , saved ) {
93
115
if ( e ) {
94
116
console . log ( 'Error in upgrading room:' , room . _id , e . message ) ;
95
117
}
@@ -103,28 +125,28 @@ function upgradeH264(next) {
103
125
}
104
126
105
127
function checkVersion ( next ) {
106
- db . infos . findOne ( { _id : 1 } , function cb ( err , info ) {
128
+ db . collection ( ' infos' ) . findOne ( { _id : 1 } , function cb ( err , info ) {
107
129
if ( err ) {
108
130
console . log ( 'mongodb: error in query info' ) ;
109
- return db . close ( ) ;
131
+ return client . close ( ) ;
110
132
}
111
133
if ( info ) {
112
134
if ( info . version === '1.0' ) {
113
135
next ( ) ;
114
136
}
115
137
} else {
116
- db . services . findOne ( { } , function cb ( err , service ) {
138
+ db . collection ( ' services' ) . findOne ( { } , function cb ( err , service ) {
117
139
if ( err ) {
118
140
console . log ( 'mongodb: error in query service' ) ;
119
141
return db . close ( ) ;
120
142
}
121
143
var upgradeNext = function ( next ) {
122
144
upgradeH264 ( function ( ) {
123
145
info = { _id : 1 , version : currentVersion } ;
124
- db . infos . save ( info , function cb ( e , s ) {
146
+ db . collection ( ' infos' ) . save ( info , function cb ( e , s ) {
125
147
if ( e ) {
126
148
console . log ( 'mongodb: error in updating version' ) ;
127
- return db . close ( ) ;
149
+ return client . close ( ) ;
128
150
}
129
151
next ( ) ;
130
152
} ) ;
@@ -162,15 +184,15 @@ function checkVersion (next) {
162
184
}
163
185
164
186
function prepareService ( serviceName , next ) {
165
- db . services . findOne ( { name : serviceName } , function cb ( err , service ) {
187
+ db . collection ( ' services' ) . findOne ( { name : serviceName } , function cb ( err , service ) {
166
188
if ( err || ! service ) {
167
189
var crypto = require ( 'crypto' ) ;
168
190
var key = crypto . pbkdf2Sync ( crypto . randomBytes ( 64 ) . toString ( 'hex' ) , crypto . randomBytes ( 32 ) . toString ( 'hex' ) , 4000 , 128 , 'sha256' ) . toString ( 'base64' ) ;
169
191
service = { name : serviceName , key : cipher . encrypt ( cipher . k , key ) , encrypted : true , rooms : [ ] , __v : 0 } ;
170
- db . services . save ( service , function cb ( err , saved ) {
192
+ db . collection ( ' services' ) . save ( service , function cb ( err , saved ) {
171
193
if ( err ) {
172
194
console . log ( 'mongodb: error in adding' , serviceName ) ;
173
- return db . close ( ) ;
195
+ return client . close ( ) ;
174
196
}
175
197
saved . key = key ;
176
198
next ( saved ) ;
@@ -228,7 +250,7 @@ prepareDB(function() {
228
250
var sampleServiceKey = service . key ;
229
251
console . log ( 'sampleServiceId:' , sampleServiceId ) ;
230
252
console . log ( 'sampleServiceKey:' , sampleServiceKey ) ;
231
- db . close ( ) ;
253
+ client . close ( ) ;
232
254
233
255
writeSampleFile ( sampleServiceId , sampleServiceKey ) ;
234
256
} ) ;
0 commit comments