2017-04-23 91 views
0

我寫了一段代碼。JSON.parse給出錯誤

function getScreenshotObj (pathToFirstFile) { 
    return new Promise ((resolve,reject) =>{ 
     console.log("Path to temp dir : " + pathToFirstFile) 
     fs.readFile(pathToFirstFile,function(err,fileContents){ 
      if (err) { 
       return reject(err) 
      } 
      else{ 
       screenshotObject = JSON.parse(fileContents) 
       obj = {pathToFirstFile : pathToFirstFile , screenshotObject:screenshotObject ,accesstoken : accesstoken} 
       return resolve(obj) 
      } 
     }) 
    }) 
} 

它在JSON.parse()給我一個錯誤。未捕獲的語法錯誤:在JSON.parse()的輸入意外結束。我使用在線JS語法檢查了語法,他們說代碼在語法上是有效的。請糾正我錯誤的地方。

+0

那麼什麼*的*文件的內容?而這個代碼是運行在Node還是瀏覽器或其他的? – Pointy

+0

文件內容是目錄中第一個文件的路徑。是的,代碼運行在節點中,基本上它是桌面應用程序(使用Electron),所以它運行在Chromium中 – user2771665

+1

如果你沒有指定文件,'.readFile()'操作返回* buffer *,而不是字符串編碼作爲第二個參數。 – Pointy

回答

0

對於fs.readFile如果您未指定編碼,則返回原始數據緩衝區。 source

變化:

fs.readFile(pathToFirstFile, function(err, fileContents) { 

fs.readFile(pathToFirstFile, 'utf8', function(err, fileContents) {