锐利的图像旋转只工作一次

Sharp image rotation works only once

我在 Node.js 的 Express 服务器上创建了一个将图像旋转 90 度的功能。 它在第一次被调用时有效,但第二次无效。如果我重新启动服务器,它会再次工作,所以如果我重新启动服务器 3 次,那么我可以一直旋转图像。

Product.findById 是一个猫鼬查询,用于查找前端请求中指定的图像 ID 的图像名称。

在第 7 行 console.log 中尝试第 7 行 console.log 正确的植物 path/name,并且不会抛出任何错误。 响应状态为 200"image rotated",两次也是


router.patch("/rotate/:image", (req, res, next) => {
  let image = ""
  Product.findById(req.params.image)
  .exec()
  .then(result => {
    image = './uploads/resized/'+result.image
    console.log("image", image)

    sharp(image)
    .rotate(90)
    .withMetadata()
    .toBuffer(function(err, buffer) {
      if(err) throw err
      fs.writeFile(image, buffer, function() {
        res.status(200).json("image rotated")
      });
    })
  })
  .catch(err => {res.status(400).json("invalid img id")
    console.log(err)})
  })

预期输出是每次 http 请求时图像旋转 90 度,但实际输出只是第一个 http 请求时图像旋转 90 度。

尝试在导入 sharp 模块后禁用缓存写入以下行:

sharp.cache(false);