Узел Экспресс, как получить доступ к папке загрузки

#node.js #express

#node.js #экспресс

Вопрос:

Я встроил upload в свое API использование multer , которое работает отлично. Я пытаюсь получить доступ к загруженным файлам из Gatsby , но это не работает

 router.use("/public", express.static(__dirname   "/public")); 
  

Файлы находятся в /public/uploads :

 http://localhost:5000/public/uploads/364935-2020-08-18.jpg
  

но я не могу получить к ним доступ.

Я пробовал разные sintaxs:

 router.use("/public", express.static(__dirname   "/public"));

router.use(express.static(__dirname   "/public"));

router.use(express.static("public"));
  

никто не работал

Есть идеи?

Спасибо

Комментарии:

1. попробуйте без public лайка http://localhost:5000/uploads/364935-2020-08-18.jpg . Если вам нужно что-то из статической папки / общедоступной папки, вам обычно не нужно писать static или public перед этим

2. спасибо, но я пробовал любую комбинацию, и она не работает

3. вы пытались удалить public на router.use("/public"

4. спасибо, но нет. Я также пробовал это

5. Когда вы используете это ==> app.use(express.static("public")); доступ должен быть http://localhost:5000/uploads/364935-2020-08-18.jpg , ИЛИ если вы используете это ==> app.use("/public", express.static(__dirname "/public")); , то получите доступ к нему через http://localhost:5000/public/uploads/364935-2020-08-18.jpg .

Ответ №1:

Пытаюсь использовать встроенный path модуль узла:

 const express = require("express");
const path = require("path");

const app = express();

app.use(express.static(path.join(__dirname, "public")));