使用coffeescript定时任务下载服务器xml和plist文件解析为json
发布时间:2020-12-16 02:09:12 所属栏目:百科 来源:网络整理
导读:使用coffeescript定时每隔一个小时从服务器上下载xml和plist文件,存到本地并解析为json文件。 ###* 每隔一个小时从服务器下载最新的xml和plist并解析为json###fs = require('fs')url = require('url')http = require('http')plist = require('plist')schedu
使用coffeescript定时每隔一个小时从服务器上下载xml和plist文件,存到本地并解析为json文件。
### * 每隔一个小时从服务器下载最新的xml和plist并解析为json ### fs = require('fs') url = require('url') http = require('http') plist = require('plist') schedule = require('node-schedule') parseString = require('xml2js').parseString initConfig = ()-> initXMLConfig() initPlistConfig() #下载xml并解析为Json文件 initXMLConfig = () -> file_url = "https://服务器地址/config.xml" filepath = "./config.xml" jsonFilepath = "./config.json" rule = new schedule.RecurrenceRule() #每小时的第0分钟第1秒执行 rule.second = 1 rule.minute = 0 rule.hour = [0..23] schedule.scheduleJob(rule,()-> options = { host: url.parse(file_url).host,port: 80,path: url.parse(file_url).pathname } http.get(options,(res)-> if res.statusCode is 200 file = fs.createWriteStream(filepath) res.on("data",(data)-> file.write(data) ).on("end",()-> file.end() file.on('finish',()-> console.log(file_url + " downloaded success!") xml = fs.readFileSync(filepath,'utf-8') if xml parseString(xml,{explicitArray: false,ignoreAttrs: true,trim: true},(err,result) -> if not err fs.writeFileSync(jsonFilepath,JSON.stringify(result),'utf-8') console.log("write to json success:#{jsonFilepath}") ) ) ) else console.log("access " + file_url + " is error,statusCode is #{res.statusCode}") ) ) #下载plist文件使用plist模块解析为json initPlistConfig = () -> file_url = "https://服务器地址/config.plist" filepath = "./config.plist" jsonFilepath = "./config1.json" rule = new schedule.RecurrenceRule() #每小时的第0分钟第10秒执行 rule.second = 10 rule.minute = 0 rule.hour = [0..23] schedule.scheduleJob(rule,(res)-> if res.statusCode is 200 file = fs.createWriteStream(filepath) res.on('data',(data)-> file.write(data) ).on('end','utf-8') if xml result = plist.parse(xml) fs.writeFileSync(jsonFilepath,'utf-8') console.log("write to json success:#{jsonFilepath}") ) ) else console.log("access " + file_url + " is error,statusCode is #{res.statusCode}") ) ) exports.initConfig = initConfig (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |