Как обслуживать файл скрипта из экспресс-маршрута - PullRequest
0 голосов
/ 14 мая 2018

У меня есть js-скрипт, который я хочу включить в атрибут src в моем html-файле. Когда я напрямую добавляю скрипт из локального пути, он работает.

Можно ли вернуть путь к файлу из экспресс-маршрута и использовать маршрут в качестве значения src в моем html? Вот как я хочу включить мой экспресс-маршрут в HTML

<script src="http://localhost:2222/widget" type="text/javascript"></script>

Экспресс-сервер работает на порте 2222 и имеет некоторые apis. Теперь в моем экспресс-маршруте / виджете

app.get("/widget", (req, res) => {
     res.send(path.join(__dirname + "/src/client/public/bundle.js"));
});

Когда я просто запускаю localhost: 2222 / widget, появляется правильный путь, начиная с /home/...

Мне нужен механизм для использования этого пути к файлу js в качестве src (как показано выше).

Примечание: я добавил все cors, заголовки и т. Д. Для контроля доступа.

1 Ответ

0 голосов
/ 14 мая 2018

Используйте res.sendFile() для отправки файла вместо пути:

Передает файл с указанным path.Устанавливает поле заголовка HTTP ответа Content-Type на основе расширения имени файла.Если корневая опция не установлена ​​в объекте параметров, path должен быть абсолютным путем к файлу.

Итак, ваш код становится:

app.get("/widget", (req, res) => {
     res.sendFile(path.join(__dirname, "/src/client/public/bundle.js"), err => console.log(err));
});

Поскольку выиспользуя path.join(), вы можете отделить __dirname и относительный путь запятой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...