Как обслуживать html + js в node.js из виртуальной памяти? - PullRequest
0 голосов
/ 18 марта 2019

Context

Я создаю html / js-редактор в браузере, для этого я использую memory-fs (виртуальная память) с Webpack и webpack-html-plugin для связыванияфайлы, которые пользователь создает в редакторе.Файлы записываются в виртуальную память, чтобы избежать операций ввода-вывода, которые могут произойти всякий раз, когда какой-либо пользователь компилирует свою программу в редакторе браузера.

Проблема

Использование node.js,как мне обслуживать полученный html + js-bundle?

Я знаю, что могу использовать

express.get('/:id', (req,res) =>...)

для создания динамических маршрутов, которые я могу сопоставить с правильным выводом.Я также знаю, что могу использовать

res.send(html-string-from-virtual-memory)

, чтобы использовать html в качестве строки.Тем не менее, я не знаю, будет ли это работать и в комплекте с javascript, который будет включен в html-файл с таким тегом script:

<script type="text/javascript" src="index_bundle.js?a9d6aa105c772d02e0f9"></script>

Что произойдет, когда браузер перейдет к этой части?Будет ли он делать еще один запрос, который мне придется обрабатывать на стороне сервера с другим .get()?Как это должно выглядеть?Я понятия не имею.

Node.js создан для обслуживания статических файлов с пути /public с диска, чтобы легко его обрабатывать, поэтому я изо всех сил, потому что он не позволяет мне обрабатывать файл-извлечение вручную (он просто запрашивает путь и обрабатывает файлы), чтобы получить файлы из виртуальной памяти.

1 Ответ

1 голос
/ 19 марта 2019

Да, когда браузер увидит тег <script>, он сделает новый запрос на файл JavaScript.В Node вы можете создать нового express.get() слушателя и отправить JavaScript так же, как отправляете HTML.

res.send(javascript-string-from-virtual-memory)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...