2016-03-08 83 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