Резкое вращение изображения работает только один раз - PullRequest
1 голос
/ 11 мая 2019

Я сделал функцию, которая поворачивает изображения на 90 градусов на сервере Express в Node.js.Работает при первом вызове, но не во второй раз.Если я перезапущу сервер, он снова будет работать, поэтому, если я перезагружу сервер 3 раза, я мог бы повернуть изображение полностью вокруг.

Product.findById - это запрос мангуста, чтобы найтиимя изображения для идентификатора изображения, указанного в запросе из внешнего интерфейса.

В первой и второй попытках console.log в строке 7 возвращает правильный путь / имя установки, и ошибка не выдается.Статус ответа 200 «изображение повернуто», оба раза также


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)})
  })

Ожидаемый результат - изображение поворачивается на 90 градусов при каждом запросе http, но фактический результат - только изображение, повернутое на 90 градусов при первом запросе http.

1 Ответ

1 голос
/ 11 мая 2019

Попробуйте отключить запись в кеш после импорта sharp модуля:

sharp.cache(false);
...