@@ -217,6 +217,105 @@ router.get('/runIndex/:projectName', async (ctx, next) => {
217
217
218
218
219
219
220
+ } )
221
+ router . get ( '/runIndexDesignateMobile/:projectNameAndMobileInfo' , async ( ctx , next ) => {
222
+ var fs = require ( 'fs' ) ;
223
+
224
+ console . log ( '要运行的项目名称=' )
225
+ var projectNameAndMobileInfo = ctx . params . projectNameAndMobileInfo ;
226
+ var projectName = projectNameAndMobileInfo . match ( / .* ?(? = 手 机 唯 一 标 识 码 ) / ) [ 0 ]
227
+ var 手机唯一标识码 = projectNameAndMobileInfo . match ( / 手 机 唯 一 标 识 码 ( .* ) / ) [ 1 ]
228
+ console . log ( projectName )
229
+ console . log ( 手机唯一标识码 )
230
+ 手机唯一标识码 = 手机唯一标识码 . split ( ';' )
231
+ console . log ( 手机唯一标识码 )
232
+ var 手机唯一标识码json = { "手机唯一标识码" :手机唯一标识码 }
233
+
234
+
235
+ 手机唯一标识码json = JSON . stringify ( 手机唯一标识码json )
236
+ console . log ( 手机唯一标识码json )
237
+
238
+
239
+ fs . writeFileSync ( './mobileCode.json' , 手机唯一标识码json )
240
+
241
+
242
+
243
+
244
+
245
+
246
+
247
+
248
+
249
+
250
+
251
+
252
+
253
+
254
+ ctx . response . body = `后端收到runIndexDesignateMobile命令` ;
255
+
256
+
257
+ if ( 指定项目中有index文件 ( projectName ) ) {
258
+ if ( index文件中有版本号 ( projectName ) ) {
259
+
260
+ } else {
261
+ 添加版本号 ( projectName )
262
+ }
263
+ } else {
264
+ 在指定项目中创建index文件 ( projectName )
265
+ }
266
+
267
+
268
+
269
+ //将指定项目压缩
270
+ var folder = './projectList/' + projectName
271
+ var zipFilePath = zipFolder ( folder )
272
+ //告诉手机下载指定项目的压缩包
273
+ var 版本号 = 1
274
+ // 版本号读取所选项目的index.js文件,
275
+ // 查看scriptVersionNumber字段
276
+ var indexFilePath = folder + '/index.js'
277
+ if ( ! fs . existsSync ( indexFilePath ) ) {
278
+ // Do something
279
+ console . log ( '请在项目中建立index.js文件' ) ;
280
+ console . log ( '文件中必须有一行内容来指定项目版本号,如下' ) ;
281
+ console . log ( 'scriptVersionNumber=1' ) ;
282
+
283
+ process . exit ( 1 )
284
+ }
285
+
286
+
287
+
288
+ console . log ( '--------读取index.js文件开始--------' ) ;
289
+
290
+ var fileContent = fs . readFileSync ( indexFilePath , 'utf-8' ) ;
291
+
292
+ console . log ( '--------读取index.js文件结束--------' ) ;
293
+
294
+ //检查版本号
295
+ var reg = / s c r i p t V e r s i o n N u m b e r = ( \d + ) /
296
+ var 版本号 = fileContent . match ( reg ) [ 1 ]
297
+
298
+
299
+
300
+
301
+
302
+
303
+
304
+
305
+
306
+ var 服务器下载端口 = port . httpPort
307
+ project = {
308
+ "projectName" : projectName ,
309
+ "scriptVersionNumber" : 版本号 ,
310
+ 'port' : 服务器下载端口
311
+ }
312
+ tellDesignateMobileDownloadProjectZipFile ( project )
313
+ //下载完毕手机自动运行该项目中的index.js
314
+ //默认版本号为1 如果在index中发现版本号,以index中的版本号为准
315
+ //如果手机上的版本号小于当前版本号,那么就更新脚本.
316
+
317
+
318
+
220
319
} )
221
320
222
321
function zipFolder ( folder ) {
@@ -237,6 +336,18 @@ function tellMobileDownloadProjectZipFile(projectName) {
237
336
childSendMsg ( projectName )
238
337
239
338
339
+ }
340
+ function tellDesignateMobileDownloadProjectZipFile ( projectName ) {
341
+ var t = config . getTime ( )
342
+ console . log ( t )
343
+ // console.log('6秒后通知手机更新脚本');
344
+ var fs = require ( 'fs' ) ; // 引入fs模块
345
+ // setTimeout(childSendMsg,6000)
346
+ var 手机唯一标识码 = fs . readFileSync ( './mobileCode.json' )
347
+ 手机唯一标识码 = JSON . parse ( 手机唯一标识码 )
348
+ childSendMsg ( projectName , 手机唯一标识码 . 手机唯一标识码 )
349
+
350
+
240
351
}
241
352
242
353
@@ -305,17 +416,17 @@ child.on('message', (msg) => {
305
416
console . log ( '大头儿子说->' + msg )
306
417
} ) ;
307
418
308
- function childSendMsg ( projectName ) {
419
+ function childSendMsg ( projectName , 手机唯一标识码 ) {
309
420
console . log ( '启动childSendMsg函数' ) ;
310
421
console . log ( '现在通知手机更新脚本' )
311
422
child . send ( '小头爸爸说->大头儿子,让他们更新脚本吧' ) ;
312
423
313
424
// setTimeout(发送项目更新信息,6000)
314
425
315
- 发送项目更新信息 ( projectName )
426
+ 发送项目更新信息 ( projectName , 手机唯一标识码 )
316
427
}
317
428
318
- function 发送项目更新信息 ( project ) {
429
+ function 发送项目更新信息 ( project , 手机唯一标识码 ) {
319
430
console . log ( "发送项目更新信息" ) ;
320
431
321
432
// var projectName=project.projectName
@@ -325,7 +436,7 @@ function 发送项目更新信息(project) {
325
436
// "scriptVersionNumber":scriptVersionNumber
326
437
// }
327
438
项目更新信息 = JSON . stringify ( project )
328
- child . send ( '项目更新信息' + 项目更新信息 )
439
+ child . send ( '项目更新信息' + 项目更新信息 , 手机唯一标识码 )
329
440
}
330
441
331
442
0 commit comments