2017-09-14 34 views
1

image-watermark、nodejsを使用して画像に透かしを入れようとしています。image-watermark、nodejsエラーを表示

const express = require('express')  
const app = express();  
var path = require('path');  
var watermark = require('image-watermark');  
app.use(express.static(path.join(__dirname, 'public'))); 

var options = { 
    'text' : 'sample watermark', 
    'resize' : '200%' 
}; 

app.get('/', function (req, res) { 
    var fs = require('fs'); 
    if (fs.existsSync('./public/files/pg363.jpg')) { 
     // Do something 
     watermark.embedWatermark('./public/files/pg363.jpg', options); 
     res.send('Hello world'); 
    }else{ 
     res.json({"filesexist":"no"}); 
    } 

}); 


app.listen(3000,function(){ 
    console.log('App running on server 3000'); 
}) 

これは私にエラーを与えている:

events.js:163 
     throw er; // Unhandled 'error' event 
    ^

Error: spawn identify ENOENT 
    at exports._errnoException (util.js:1050:11) 
    at Process.ChildProcess._handle.onexit (internal/child_process.js:193:32) 
    at onErrorNT (internal/child_process.js:367:16) 
    at _combinedTickCallback (internal/process/next_tick.js:80:11) 
    at process._tickCallback (internal/process/next_tick.js:104:9) 

は、ファイルパスに関連し、このエラーです。私のディレクトリ構造 PDF透かし(ホームディレクトリ)である - >公的>ファイル - > pg363.jpg

助けてください。

答えて

0

ENOENTは、何らかの理由でノードがファイルを開くことができないことを意味します。

まず、あなたはpath.resolve__dirnameを使用して、あなたのイメージファイルへのフルパスを指定する必要があります。

const imagePath = path.resolve(__dirname, 'public/files/pg363.jpg'); 
if (fs.existsSync(imagePath)) { 
    watermark.embedWatermark(imagePath, options); 
    // ... 
} 

第二に、あなたはまた、ノードがへの適切な読み取り/書き込み権限を持つユーザーとして実行されていることを確認する必要がありますイメージファイルを更新します。

+0

持ち上げ同じエラーです。 – raju