用node写脚本,替代重复性工作
作者:互联网
公司app是用apicloud开发,而且平台数量较多,经常需要集体修复bug或者上新功能,就会有大量的重复性质工作,比如打包、下载等,所以这边在业余时间用node写一个脚本替代重复性工作。毕竟程序员应该用代码来解决这些枯燥的工作。因为本人对node研究不是很深,只是简单写一下
首先用postman来确认下接口
经过游览器f12查看接口,走一遍打包的逻辑,可以分析出接口必要的参数
- Host(写固定值)
- orgin(写固定值)
- referer(写固定值)
- Cookie
Cookie 里面传入关键的参数
curAppId是appid
connect.sid 是唯一ID
curAppName 是APP名称
每次调用接口的时候把这些参数传入
确认流程需求
- 获取所有APP列表获取appId并且循环
- 过滤掉不需要打包的APP
- 打包前的准备
- 获取正在打包APP的所有信息
- 提交打包信息
- 轮询调用接口查询正在打包的信息,是否打包完成
- 如果打包完成执行下载保存
- 下载完成继续走第二步
初始化node项目
npm init
创建初始化package.json
再创建index.js
文件
package.json修改
{
"name": "apicloud",
"version": "1.0.0",
"main": "app.js",
"dependencies": {
"fs": "^0.0.1-security",
"request": "^2.88.0"
},
"scripts": {
"serve": "node index.js"
}
}
里面包含了 启动命令和 必要的包
node调用接口和下载文件的格式
//顶部引入
//调用接口
var options = {
'method': 'POST',
'url': 'XXX',
'headers': {
'Host': 'www.apicloud.com',
'Origin': 'https://www.apicloud.com',
'Referer': 'https://www.apicloud.com/package',
'Cookie': 'cookie'
}
};
request(options, function (error, response) {
if (error) throw new Error(error);
console.log(response.body)
});
//下载文件
var stream =fs.createWriteStream('下载保存名称.gif');
request('https://csdnimg.cn/cdn/content-toolbar/csdnlogo_ChineseNewYear.gif').pipe(stream).on('close', function(){
console.log('下载完成');
});
业务逻辑
直接放github下载地址了
github地址
总结
目前对node还是比较简单的了解,这个脚本只是临时使用,也没对代码有封装,有时间要封装进登录和识别验证码。
以后还是多用脚本来替代重复的操作,来降低操作失误和工作枯燥,不能天天点来点去来浪费时间
标签:node,apicloud,APP,接口,下载,重复性,替代,打包 来源: https://blog.csdn.net/c347087870/article/details/104052666