2015-04-15 83 views
0

我正在使用OSX。我在桌面上有一個文本文件,我試圖從文本文件中讀取數據(稱爲data.txt)並將其放入數組中。該文本文件的結構如下:從桌面解析文件

[ 
"abc1, abc2, 47872, happy", 
"abc3, abc4, 23232, sad", 
"abc5, abc6, 64242, tired", 
"abc7, abc8, 25542, chilly", 
"abc9, abc10, 23244, warm", 
] 

這裏是一些代碼,我試圖開始獲取此。

var request = require('request'); 

var commaDelimiter = ','; 
var newlineDelimiter = ' '; 

var firstArray =[]; 
var unsortedOutputArray= []; 
var sortedOutputArray = []; 


request('/Users/user/Desktop/data.txt', function (error, response, body) { 
    if (!error && response.statusCode == 200) { 
     body.split(commaDelimiter).forEach(function (item, index) { 
      arrayOfStrings.push(item); 
      array.push(parseInt(item)); 

    console.log(firstArray[0]); 
     }); 
    } 
}) 

我遇到的問題是試圖找出我在哪裏出錯。
我想console.log數組中的元素來驗證它正確傳遞,但沒有顯示任何內容。任何人都可以幫助找出我有問題的地方嗎?
我不認爲我需要狀態碼200,因爲它是一個本地文件,但任何人都可以建議。兩件事情,我相信可能是問題

  1. 我如何設置爲我的桌面上的文件的路徑 - 即我做 這是否正確?和
  2. 沒有我首先建立正確的請求(這個我不是很確定)
+3

您應該使用'fs'模塊從文件系統讀取文件:https://nodejs.org/api/fs.html –

+1

它已經是一個數組了,所以只需調用字符串 – dandavis

+1

的JSON.parse()請求是用於HTTP。本地文件不是HTTP。 – Gant

回答

2

而不是調用它的data.txt,可以稱之爲data.json(因爲該文件包含字符串的JSON編碼數組,但要確保流氓最後一個逗號被刪除,否則將不符合法律JSON),然後你可以要求它從它的文件位置:

var data = require("/Users/user/Desktop/data.json"); 
console.log(data[0]) // => abc1, abc2, 47872, happy 

,然後做任何其他邏輯,llike

var data = require("..."); 
data.forEach(function(row) { 
    var terms = row.split(", "); 
    terms.forEach(function(term) { 
    console.log(term) 
    }); 
}); 
+0

Upvoted,但請確保您刪除數組中最後一個元素後的逗號。 –

+0

技術上沒有必要:這是一個最後一個元素爲空的合法數組(IE會死的,node.js不應該) –

+0

從技術上說,它死在我的機器上:)主要是因爲它是JSON而不是JS。 –