2016-12-22 53 views
0

我寫了一個JavaScript「meta.js」從pdf文件中獲取元數據。Node.js錯誤從PDF獲取元數據使用exiftool

下面是我的程序,

var exif = require('exiftool'); 
var fs = require('fs'); 

fs.readFile('Sample.pdf', function (err, data) { 
    if (err) 
    throw err; 
    else { 
    exif.metadata(data, function (err, metadata) { 
     if (err) 
     throw err; 
     else 
     console.log(metadata); 
    }); 
    } 
}); 

當我做 「節點meta.js」 得到以下錯誤,

C:\用戶\ abhishek.suthar \下載\節點應用>節點元。 js

events.js:85 
     throw er; // Unhandled 'error' event 
      ^
Error: write EPIPE 
    at exports._errnoException (util.js:746:11) 
    at Socket._writeGeneric (net.js:690:26) 
    at Socket._write (net.js:709:8) 
    at doWrite (_stream_writable.js:301:12) 
    at writeOrBuffer (_stream_writable.js:288:5) 
    at Socket.Writable.write (_stream_writable.js:217:11) 
    at Socket.write (net.js:634:40) 
    at Object.exports.metadata (C:\Users\abhishek.suthar\Downloads\node application\node_modules\exiftool\lib\exiftool.js:73:14) 
    at C:\Users\abhishek.suthar\Downloads\node application\meta.js:8:10 
    at fs.js:334:14 

我已經安裝了需要的模塊,您可以在我的錯誤日誌路徑中看到。

回答

-1

我敢打賭你沒有得到數據,因爲路徑錯誤。 嘗試:

var exif = require('exiftool'); 
var fs = require('fs'); 

fs.readFile('Sample.pdf', function (err, data) { 
    console.log("Received data: " + data) 

    if (err) 
    throw err; 
    else { 
    exif.metadata(data, function (err, metadata) { 
     if (err) 
     throw err; 
     else 
     console.log(metadata); 
    }); 
    } 
}); 

的方式,我得到正確的路徑:

const path = require('path') 

path.join(__dirname, "./someFile.pdf") 

另一種方法來檢查的路徑是執行fs.stat

並允許我給出一個建議: 不要猶豫,使用方法的同步變體,只要不需要異步方法。爲什麼要把事情整理一下。參見:fs.readFileSyncfs.statSync

+0

我得到完整的數據....完整的pdf文件打印在console.I使用0.12.7節點版本。 –

+0

路徑在這裏有些東西是錯的...... –

+0

嗯,我只能建議通過github回購的問題。初學者的例子看起來和你的完全一樣。 – Lazyexpert

相關問題