Переход от sendfile () к sendFile () в Express - PullRequest
0 голосов
/ 24 сентября 2018

Мой код выглядит следующим образом:

router.get('/image',(req,res,next)=>{
  const fileName = "path_to.jpg"
  res.sendfile(fileName,(err)=>{
    if (err) {
      next(err);
    } else {
      console.log('Sent:', fileName);
    }
  });
})

При использовании «как есть» с Express 4 этот маршрутизатор работает посредством успешной отправки нужного изображения клиенту.Однако сервер выдает предупреждающее сообщение об устаревании «res.sendfile» и о том, что я должен переключиться на «res.sendFile» ((просто используйте заглавную букву «f» в «file»)).

express deprecated res.sendfile: Use res.sendFile instead

Когда я делаю именно то, что мой функциональный код больше не приводит к статусу 200, а к 500. Никакой другой аспект не меняется, кроме того, что «f» становится заглавной буквой.

Неужели я не понимаю, о чем просит меня сделать это предупреждение?

Я ссылался (http://expressjs.com/en/api.html#res.sendFile) и не видел ничего явно неверного в моем фрагменте кода... Если есть другая информация, которую я должен предоставить, пожалуйста, дайте мне знать.

1 Ответ

0 голосов
/ 24 сентября 2018

Включив модуль «путь» в маршрутизатор, я смог создать абсолютный путь для использования sendFile (), как это было предложено в комментарии @karthick к исходному сообщению.

Так что при вызове sendFile () используйте относительный путь к файлу в качестве fileName и абсолютный путь, созданный «path» для опции «root».

В приведенном ниже примере предполагается, что файл изображения находится в той же папке, что и скрипт маршрутизатора.

router.get('/image',(req,res,next)=>{
const fileName = "1.jpg"
res.sendFile(fileName,{ root: path.join(__dirname, './') },(err)=>{
    if (err) {
    console.log(err)
    next(err)
    } else {
    console.log('Sent:', fileName);
    }
});
})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...