2016-12-01 88 views
1

我想從使用NodeJS和exiftool的JPG圖像中獲取標籤元數據。這是我第一次使用NodeJS。這是我試過的: 我安裝了NodeJS for windows。我有一個形象的名稱t.jpg並在同一目錄下我有一個js文件名爲run.js使用Exiftool和NodeJS從JPG中讀取標籤

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

我再開一個命令行窗口,鍵入以下內容:

我認爲我需要什麼在代碼

npm install exiftool 
npm install fs 
node run.js 

然後我得到了以下錯誤需要添加:

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

任何想法我做錯了什麼?我能做些什麼來得到我想要的?

+2

我不認爲你的代碼有什麼問題,它適用於我。看起來像一些系統相關的問題,如權限,或不在PATH中的'exiftool'。你能從命令行(CMD或PowerShell)運行'exiftool'嗎? – jkondratowicz

+0

謝謝......我的windows文件夾中沒有exiftool。如果你寫這個作爲答案,我可以給你代表。 – Chris

回答

4

請參閱註釋 - >exiftool必須安裝在系統PATH中。要輕鬆測試此操作,請嘗試從命令行(cmd或powershell)運行exiftool

+0

儘管我可以從命令行運行exiftool,但是仍然出現相同的錯誤,與上面的代碼相同。任何想法? – BelgoCanadian