我试图在图像上添加水印,使用图像水印,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)此错误是否与filepath相关。我的目录结构是pdf-水印(主目录)-> public-> -> pg363.jpg
请帮帮忙。
发布于 2017-09-14 09:54:46
ENOENT意味着节点由于某些原因无法打开文件,这可能是由一些原因引起的。
首先,应该使用path.resolve和__dirname指定图像文件的完整路径。
const imagePath = path.resolve(__dirname, 'public/files/pg363.jpg');
if (fs.existsSync(imagePath)) {
watermark.embedWatermark(imagePath, options);
// ...
}其次,还应确保节点以具有适当读写权限的用户身份运行,以更新图像文件。
https://stackoverflow.com/questions/46210448
复制相似问题