用node写脚本,替代重复性工作

公司app是用apicloud开发,而且平台数量较多,经常需要集体修复bug或者上新功能,就会有大量的重复性质工作,比如打包、下载等,所以这边在业余时间用node写一个脚本替代重复性工作。毕竟程序员应该用代码来解决这些枯燥的工作。因为本人对node研究不是很深,只是简单写一下

首先用postman来确认下接口

用node写脚本,替代重复性工作_第1张图片
经过游览器f12查看接口,走一遍打包的逻辑,可以分析出接口必要的参数

  • Host(写固定值)
  • orgin(写固定值)
  • referer(写固定值)
  • Cookie

Cookie 里面传入关键的参数
curAppId是appid
connect.sid 是唯一ID
curAppName 是APP名称
每次调用接口的时候把这些参数传入

确认流程需求

  1. 获取所有APP列表获取appId并且循环
  2. 过滤掉不需要打包的APP
  3. 打包前的准备
  4. 获取正在打包APP的所有信息
  5. 提交打包信息
  6. 轮询调用接口查询正在打包的信息,是否打包完成
  7. 如果打包完成执行下载保存
  8. 下载完成继续走第二步

初始化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,脚本)