2017-09-14 66 views
1

我想在圖像上使用圖像水印,nodejs放置水印。圖像水印,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-watermark(主目錄) - > public-> files-> pg363.jpg

請幫忙。

回答

0

ENOENT意味着節點無法打開文件出於某種原因,這可能是由一些事情引起的。其次

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

,你也應該確保節點正在運行,用適當的讀/寫權限的用戶:

首先,你應該指定完整路徑的圖像文件,使用path.resolve__dirname更新圖像文件。

+0

它引發同樣的錯誤。 – raju