2016-03-08 121 views
-1

IM新的JavaScript的NodeJS,我试图用谦虚/ pdf2json从hithub。但有错误显示遗漏)语法错误,下面是代码和注释中的错误标志,的NodeJS pdf2json丢失)后的参数列表

let fs = require('fs'), 
    PDFParser = require("./pdf2json/PDFParser"); 

let pdfParser = new PDFParser(); 

pdfParser.on("pdfParser_dataError", errData => console.error(errData)); 
    //Syntax error here missing) at "errData" 
pdfParser.on("pdfParser_dataReady", pdfData => { 
    let pJSON = JSON.stringify({"formImage": pdfData.data}); 
    //Syntax error here missing) at "pdfData" 

    fs.writeFile("./pdf2json/test/F1040EZ.json", pJSON, (err) => { 
     if(err) { 
      console.error("parsing error: ", err); 
     } 
     else { 
      console.log("parsing succeeded"); 
     } 
    }); 
}); 

pdfParser.loadPDF("./pdf2json/test/pdf/fd/form/F1040EZ.pdf"); 

// or, call directly with buffer 
fs.readFile(pdfFilePath, function (err, pdfBuffer) { 
    if (!err) { 
    pdfParser.parseBuffer(pdfBuffer); 
    } 
}) 

“=>”是什么意思?导致错误往往会弹出与此符号一致的位置。

回答

0

它是ES6标记:

param => { } 

相同:下面

function (param) { } 

Read more about ES6


代码在节点:

"use strict" 
let fs = require("fs"), 
    PDFParser = require("pdf2json"); 

let pdfParser = new PDFParser(); 

pdfParser.on("pdfParser_dataError", errData => { 
    console.error(errData) 
}); 

pdfParser.on("pdfParser_dataReady", pdfData => { 
    let pJSON = JSON.stringify({ 
     "formImage": pdfData.data 
    }); 

    fs.writeFile("./pdf2json/test/F1040EZ.json", pJSON, err => { 
     if (err) { 
      console.error("parsing error:", err); 
     } else { 
      console.log("parsing succeeded"); 
     } 
    }); 
}); 

pdfParser.loadPDF("./pdf2json/test/pdf/fd/form/F1040EZ.pdf"); 

您也可以尝试使用该代码的ES5版本:(注意功能和var代替let

var fs = require('fs'), 
    PDFParser = require("pdf2json"); 

var pdfParser = new PDFParser(); 

pdfParser.on("pdfParser_dataError", function (errData) { console.error(errData) }); 
pdfParser.on("pdfParser_dataReady", function (pdfData) { 
    var pJSON = JSON.stringify({"formImage": pdfData.data}); 

    fs.writeFile("./pdf2json/test/F1040EZ.json", pJSON, function (err) { 
     if(err) { 
      console.error("parsing error: ", err); 
     } else { 
      console.log("parsing succeeded"); 
     } 
    }); 
}); 

pdfParser.loadPDF("./pdf2json/test/pdf/fd/form/F1040EZ.pdf"); 
+1

这是OP正在讨论的nodeJS。你为什么在谈论浏览器? – Andy

+0

更正,我读得太快 – MrVaykadji

+0

仍然有错误,是否因为我的节点版本? 节点V3.3.1 的NodeJS v0.10.25 – ethanblewb

1

这是在ES6介绍Arrow功能。

根据MDN

箭头函数表达式(也称为脂肪箭头功能)具有较短的语法相比函数表达式和词法结合此值(不结合其自身的此,自变量,超级,或new.target)。箭头功能始终是匿名的。

(param1, param2, …, paramN) => { statements } 
(param1, param2, …, paramN) => expression 
     // equivalent to: => { return expression; } 

// Parentheses are optional when there's only one parameter: 
(singleParam) => { statements } 
singleParam => { statements } 

// A function with no parameters requires parentheses or an underscore: 
() => { statements } 
_ => { statements } 

你能告诉我你是怎么执行这段代码的吗?

更新: 块范围声明不允许超出严格模式。因此在脚本中使用严格模式。

+0

其实我使用命令执行这个命令 node {filename} .js – ethanblewb