javascript - 将文件内容传递给函数,而不是下载文件

标签 javascript node.js file download nightmare

我正在使用 Nightmare 来自动从Web服务下载特定于用户的生成的csv文件,如下所示(粗略的工作流程):

  • .goto()网站
  • .insert()凭据和.click()登录按钮
  • 所需加载的DOM元素的
  • .wait()
  • 抓取登录页面以提取一些特定于请求的标识符,该标识符对于生成我对
  • 感兴趣的文件的下载链接是必需的
  • 使用其他一些参数在.goto()端点上调用export.php以下载csv文件。由于显示了梦Night的电子窗口,因此要求我提供存储文件的路径。

  • 当前,一般的总体工作流程如下:
  • 使用Nightmare
  • 下载(并保存)文件
  • 使用 readFileSync() 将文件读取为字符串
  • 使用 data-forge-js pandasjs d3-dsv 分析数据

  • 通过将文件的内容直接传递到数据分析,我想摆脱在步骤1中保存文件并在步骤2中读取该本地文件的过程。我不想在本地存储原始的csv文件。由于我不想在生产中晚些时候启用Nightmares Electron Window,因此我正在寻找一种方法将文件的内容直接传递给数据处理功能,并摆脱那些不必要的步骤。

    最佳答案

    您可以使用window.URL对象方法来存储数据。以下内容检索二进制blob,但您可以使用content-types和response-types返回字符串。

            xmlhttp.open('GET', PHOTO_URL, true);
            xmlhttp.responseType = 'blob';
    
            xmlhttp.onreadystatechange = function () {
                if (xmlhttp.readyState == 4) {
                    if (xmlhttp.status == 200) {
                        var blob = xmlhttp.response;
                        photoImg.src = window.URL.createObjectURL(blob);
                        setTimeout(setOnCampusImage,0);     
                    } else {
                        photoImg.src = 'unknown.png';
                    }
                }
            }
    

    关于javascript - 将文件内容传递给函数,而不是下载文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47744928/

    相关文章:

    javascript - 如何切换侧边栏?

    android - 如何创建唯一的文件名?

    node.js - 找不到指定的模块 - Node oracledb

    javascript - 添加 Integer 创建条目后的 ERR_EMPTY_RESPONSE node.js

    file - Golang读取文件回车

    ios - Phonegap/Cordova 文件传输上传图像作为 Base64 字符串在 ios 中不起作用

    javascript - 是否可以使用基于 Web 的编程来剪切音频文件

    javascript - Azure函数计时器在数据库表的确切时间触发

    javascript - AngularJS 仅对 ng-repeat 表中的前两项进行排序

    node.js - Node --max_old_space_size 不工作