只需将.txt文件中的每一行放入一个javascript数组

时间:2019-05-08 22:44:11

标签: javascript node.js ajax

这并不难,但是我只是想获取文件的内容并将每一行存储到一个数组中。

“ file.txt”文件(格式为纯文本):

file1.dwg
file2.dwg
file3.pdf
file4.dwg
file5.pdf

我的JavaScript代码:

function readTextFile('file.txt') {
    var rawFile = new XMLHttpRequest();
    rawFile.open("GET", 'file.txt', false);
    rawFile.onreadystatechange = function ()
    {
        if(rawFile.readyState === 4)
        {
            if(rawFile.status === 200 || rawFile.status == 0)
            {
                var allText = rawFile.responseText;
                alert(allText);
            }
        }
    }
    rawFile.send(null);
}

控制台中显示的语法错误:
-野生动物园:SyntaxError: Unexpected string literal 'file.txt'. Expected a parameter pattern or a ')' in parameter list.
-chrome:Uncaught SyntaxError: Unexpected string

我正在具有以下文件结构的简单实时服务器上运行文件:
-file.txt
-page.html
-script.js

page.html只是调用脚本,并且可以在其中工作并打开控制台。

为什么会发生错误,如何解决?我尝试按照另一篇文章中的说明进行操作,但也失败了:How to read a local text file?

然后,我还尝试了节点解决方案,并使我的代码如下:

var fs = require('fs');
var array = fs.readFileSync('file.txt').toString().split("\n");
for(i in array) {
    console.log(array[i]);
}

我对Node一无所知,但还是尝试了-错误是:
-chrome:未捕获的ReferenceError:require未定义
-野生动物园:ReferenceError:找不到变量:require

感谢您的帮助-我不知道如何解决这个看似简单的问题。

1 个答案:

答案 0 :(得分:1)

 function readTextFile(textFilePath) { //set a variable
     var rawFile = new XMLHttpRequest();
     rawFile.open("GET", textFilePath, false); //user variable here
     let fileNameArray= [];//defined array here for now
     rawFile.onreadystatechange = function (){
           if(rawFile.readyState === 4)
           {
              if(rawFile.status === 200 || rawFile.status == 0)
              {
                  var allText = rawFile.responseText;
                  console.log(allText); //check in broswer console

                  //alert(allText)
                  //or enale the alert function

                  fileNameArray = allText.split('\n'); //split by line break and add to array
                  console.log(fileNameArray)

               }
            }
      }
      rawFile.send(null);
 }

 readTextFile('./text.txt'); // call function and pass relative path of text file here