简体   繁体   English

使用exiftool从pdf获取元数据的Node.js错误

[英]Node.js error getting metadata from pdf using exiftool

I have written one javascript "meta.js" to get metadata from pdf file. 我已经编写了一个JavaScript“ meta.js”来从pdf文件中获取元数据。

Below is my program, 下面是我的程序,

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

When I do "node meta.js" getting below error, 当我执行“ node meta.js”时,出现以下错误,

C:\\Users\\abhishek.suthar\\Downloads\\node application>node meta.js C:\\ Users \\ abhishek.suthar \\ Downloads \\ node应用程序> 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

I have installed required modules as you can see in my error log paths. 您已经在错误日志路径中看到了,我已经安装了必需的模块。

I bet you dont get data, because of the wrong path. 我敢打赌,由于路径错误,您不会获得数据。 Try: 尝试:

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

The way I get correct path: 我获得正确路径的方式:

const path = require('path')

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

Another approach to check the path is to execute fs.stat . 检查路径的另一种方法是执行fs.stat

And allow me, to give one advice: Do not hesitate using sync variants of the methods, as far as async approach is not necessary. 并请允许我提一个建议:只要不需要异步方法,请不要犹豫使用这些方法的同步变体。 Why make things compilcated. 为什么要编译东西。 See: fs.readFileSync and fs.statSync . 请参阅: fs.readFileSyncfs.statSync

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM