nodejs删除图片成功还是会报错,大锅们,为什么啊
f(req.file) {
const index = formData.src.indexOf(':3000')
const url = formData.src.substring(index+5)
fs.unlink(path.join(__dirname,`img/${url}`),err => {
console.log(err);
res.status(500)
})
formData.src = src
let img = fs.readFileSync(path.join(__dirname,`./img/${urlStr}`))
let newstr = cutOutStr(urlStr)
let newImg = path.join(__dirname,`./img/${newstr}.png`)
let textShaop = await sharp({text:{text:'永华家具',width:70,dpi:80,rgba:true}}).png().tint({ r: 15, g: 105, b: 205 }).composite([{input:Buffer.from([255, 255, 255, 60]),raw: { width: 1, height: 1, channels: 4 },tile: true,blend: 'dest-in'}]).rotate(30).toBuffer()
await sharp(img).composite([{input:textShaop,blend: 'atop', left: 130, top: 70}]).resize(300, 180, {fit: 'cover',}).toFile(newImg)
fs.unlink(path.join(__dirname,`./img/${urlStr}`),errs => {
console.log(errs);
res.status(500)
})
}
为啥呀,大锅们
开始的时候使用的是fs.exists判断文件,后面在查文档时偶然看到fs.exists不被提倡使用,而且fs.existsSync方法已经过时淘汰了,下面说说 exists 和 acess 的 区别。
1、fs.exists()的回调参数只有一个参数,并且这个参数是个boolean类型,用于判断文件是否存在,然而在其它Node.js中其他回调函数中第一个参数通常是error,这就容易导致混淆。
2、使用fs.access() 的回调函数也是只有一个参数,而且参数是 err ,更加的方便使用
报错信息是什么?可以贴出来看下