2017-04-23 98 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) {