使用Exiftool和NodeJS从JPG读取标签

Chr*_*ris 1 javascript exif node.js exiftool

我试图使用NodeJS和exiftool从JPG图像中获取标签元数据.这是我第一次使用NodeJS.这就是我尝试的:我为Windows安装了NodeJS.我有一个名为t.jpg的图像,在同一目录中我有一个名为run.js的js文件

这是run.js文件

var exif = require('exiftool');
var fs   = require('fs');
fs.readFile('t.jpg', function (err, data) {
    if (err) {
        console.log(err);
    } else {
        exif.metadata(data, function (err, metadata) {
            if(err)
                console.log(err);
            else
                console.log(metadata);
        });
    }
});
Run Code Online (Sandbox Code Playgroud)

然后我打开了一个命令行窗口并键入以下内容:

我假设我需要添加代码中所需的任何内容

npm install exiftool
npm install fs
node run.js
Run Code Online (Sandbox Code Playgroud)

然后我得到以下错误:

> node run.js
events.js:160
  throw er; // Unhandled 'error' event
  ^

Error: write EPIPE
    at exports._errnoException (util.js:1026:11)
    at Socket._writeGeneric (net.js:710:26)
    at Socket._write (net.js:729:8)
    at doWrite (_stream_writable.js:333:12)
    at writeOrBuffer (_stream_writable.js:319:5)
    at Socket.Writable.write (_stream_writable.js:246:11)
    at Socket.write (net.js:656:40)
    at Object.exports.metadata (C:\Users\chris\Dropbox\Werk\nodejs\no
    at C:\Users\chris\Dropbox\Werk\nodejs\run.js:7:10
    at FSReqWrap.readFileAfterClose [as oncomplete] (fs.js:445:3)
Run Code Online (Sandbox Code Playgroud)

知道我做错了什么吗?我能做些什么才能得到我想要的东西?

jko*_*icz 6

请参阅注释 - > exiftool必须安装在系统PATH中.要轻松测试,请尝试exiftool从命令行(cmd或powershell)运行.