当前位置: 首页 > news >正文

网络营销产品推广百度搜索引擎优化方案

网络营销产品推广,百度搜索引擎优化方案,中企动力口碑怎么样,建网站的专业公司electronvue3写了一个小项目,实现了一个文件下载功能 存在的问题 打包后,应用下载文件崩溃代码 // 渲染进程window.electron.ipcRenderer.invoke(save-file, {path: r.filePath,fileurl: previewUrl,}).then(response > {console.log(response ----…

electron+vue3写了一个小项目,实现了一个文件下载功能

存在的问题

	打包后,应用下载文件崩溃

代码

// 渲染进程window.electron.ipcRenderer.invoke('save-file', {'path': r.filePath,'fileurl': previewUrl,}).then(response => {console.log('response --------------');console.log(response);})// 主进程
ipcMain.handle('save-file', (event, args) => {// process.crash()try {// 下载保存文件console.log('axios args.fileurl ------------');console.log(args.fileurl);return downloadFile(args.fileurl, args.path)} catch (error) {console.log('error ---------------------------')console.log(error)return 'save-file 出错了: \n' + error.toString()}
});// 工具文件
import axios from 'axios'
import fs from 'fs/promises'export function downloadFile(downloadUrl, downloadPath) {try {return axios.get(downloadUrl, {method: 'GET',headers: {"User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.85 Safari/537.36","Referer": downloadUrl,},responseType: 'arraybuffer'}).then(res => {console.log('下载成功')return fs.writeFile(downloadPath, res.data, "binary").then(r => {console.log('保存成功')return fs.stat(downloadPath)});}).catch(e => {console.log('e ------------------')console.log(e)return e});} catch (error) {console.log('error ---------------------------')console.log(error)return 'downloadFile 出错了: \n' + error.toString()}
}

解决思路

首先,要复现,我测试了自己的笔记本电脑,双系统都没问题,没办法复现这个bug,但是测试那边两台电脑都能复现,测试是在外地!我只好又找了一台闲置电脑,还好复现出来了,否则只能回家试试自己的电脑了

第二,找到问题所在,打包后 console.log 就看不到了,我想办法记录日志,看了官方的crashReporter,还有不少人推荐,我正好全栈,就搞了个接口接收日志,但是没有任何报错。后来试了electron-log,记录在用户本地,真香,简单好用,以后有需要直接搞个接口上传log文件就好了!还是没报错!但是我锁定了有问题的那一行代码,就是 axios.get(downloadUrl, { 这里崩溃的!

第三,想办法换掉axios!试了第三方electron下载库,electron-download、electron-dl、都很难用,文档少,搜索结果更少,自己摸索半天也没跑起来,继续换electron-download-manage,但是这个东西调用很麻烦!换request下载,和axios比较像,还是不行!我觉得我的方向可能错了,灵机一动,把axios下载放在渲染进程里面,下载好的数据传递给主进程!好了!

代码

// 渲染进程axios.get(previewUrl, {method: 'GET',responseType: 'arraybuffer'}).then(res => {console.log('下载成功')console.log('下载成功')console.log('下载成功')console.log(typeof res.data)window.electron.ipcRenderer.invoke('save-file', {'data': res.data,'path': r.filePath,}).then(response => {console.log('response --------------');console.log(response);})// 主进程ipcMain.handle('save-file', (event, args) => {try {log.info('event, args ------------');log.info(event, args);// 保存文件return saveFile(args.data, args.path)} catch (error) {log.info('error ---------------------------')log.info(error)return 'save-file 出错了: \n' + error.toString()}
});// 工具js
import fs from 'fs/promises'
import log from 'electron-log'
import { Buffer } from 'buffer'export function saveFile(data, downloadPath) {log.info('saveFile ----------------------- 0')try {log.info('saveFile ----------------------- 1')return fs.writeFile(downloadPath, Buffer.from(data), "binary").then(r => {log.info('保存成功')return fs.stat(downloadPath)});} catch (error) {log.info('saveFile ----------------------- 3')log.info('error ---------------------------')log.info(error)throw new Error('saveFile出错了:' + error.toString()) // 将错误包装成新的Error对象并抛出,让调用者知道发生了错误}
}

中间还发生了一个小插曲

Error occurred in handler for 'save-file': 
TypeError [ERR_INVALID_ARG_TYPE]: 
The "data" argument must be of type string or an instance of 
Buffer, TypedArray, or DataView. Received an instance of ArrayBuffer

所以才有了Buffer.from(data)
感谢文心一言,感谢我自己!

http://www.shuangfujiaoyu.com/news/57445.html

相关文章:

  • 怎么用dw做简单网站近期的新闻消息
  • 台州市临海建设局网站百度笔记排名优化
  • 网站模版开发山东今日热搜
  • 织梦做的网站删除手机上可以创建网站吗
  • WordPress HTML标签验证什么是seo如何进行seo
  • 关于电子商务的网站推广方案排名推广网站
  • 珠海澳门网站建设公司哪家好扶贫832网络销售平台
  • c 语言Vs做网站接口推广方式怎么写
  • 常用的博客建站程序沈阳沈河seo网站排名优化
  • 呼和浩特资产评估公司seo提升排名技巧
  • 可以做盗版漫画网站吗搜索引擎优化的主要手段
  • 国内做色情网站平台推广广告宣传词
  • 检察院做网站的目的goole官网
  • 西双版纳傣族自治州属于哪个国家个人网站seo
  • 网站地图怎么做_旺道seo软件技术
  • 网站推广软文全球网站流量查询
  • 浙江省两学一做网站太原关键词排名推广
  • 营销网站建设服务平台小红书关键词搜索量查询
  • 网站免费优化软件发帖子最好的几个网站
  • 网站临时域名百度官网地址
  • iis网站没有属性公司营销网站建设
  • oss做网站百度上如何做优化网站
  • 杭州网站建设哪家好常用的seo工具推荐
  • 赌博游戏网站怎么做厦门关键词优化seo
  • 成都php网站建设工程师网站生成app
  • 个人网站首页模板结构优化设计
  • 职业病院网站建设网址查询注册信息查询
  • 东易日盛装饰装修公司seo培训资料
  • 北京高端品牌网站建设阿里云注册域名
  • 佛山市手机网站建设网络seo优化公司