2016-12-22 5 views
0

Ich habe ein Javascript "meta.js" geschrieben, um Metadaten aus der PDF-Datei zu erhalten.Node.js Fehler beim Abrufen von Metadaten aus PDF mit exiftool

Unten ist mein Programm,

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); 
    }); 
    } 
}); 

Wenn ich "Knoten meta.js" unten Fehler bekommen,

C: \ Users \ abhishek.suthar \ Downloads \ Knotenanwendung> node Meta. 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 

Ich habe die erforderlichen Module installiert, wie Sie in meinen Fehlerprotokollpfaden sehen können.

Antwort

-1

Ich wette, Sie bekommen keine Daten, wegen des falschen Pfades. Versuchen:

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); 
    }); 
    } 
}); 

So wie ich richtigen Weg bekommen:

const path = require('path') 

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

Ein weiterer Ansatz den Weg zu überprüfen, ist fs.stat auszuführen.

Und erlauben Sie mir, einen Rat zu geben: Zögern Sie nicht, Synchronisierungsvarianten der Methoden zu verwenden, so weit Async-Ansatz nicht erforderlich ist. Warum Dinge kompiliert machen. Siehe: fs.readFileSync und fs.statSync.

+0

Ich bekomme volle Daten .... vollständige PDF-Datei in der Konsole gedruckt. Ich verwende 0.12.7 Knoten Version. –

+0

Pfad ist genau hier etwas anderes ist falsch ... –

+0

Nun, ich kann vorschlagen, nur durch die Ausgaben des Github Repo gehen. Das Starter-Beispiel sieht genauso aus wie Ihres. – Lazyexpert

Verwandte Themen