上下文
我正在制作一个浏览器内的 html/js 编辑器,为此我使用 memory-fs (虚拟内存)与 Webpack 和 webpack-html-plugin 捆绑用户在编辑器中创建的文件。这些文件被写入虚拟内存以避免 I/O 操作,每当任何用户在浏览器内编辑器中编译其程序时都会发生这种情况。
问题
使用node.js,如何提供生成的html+js-bundle?
我知道我可以使用
express.get('/:id', (req,res) =>...)
创建动态路由,我可以将其映射到正确的输出。我也知道我可以使用
res.send(html-string-from-virtual-memory)
将 html 作为字符串提供。但是,我不知道这是否也适用于捆绑的 javascript,它将包含在带有如下脚本标记的 html 文件中:
<script type="text/javascript" src="index_bundle.js?a9d6aa105c772d02e0f9"></script>
当浏览器到达这部分时会发生什么?它是否会发出另一个请求,我必须使用另一个 .get()
在服务器端处理该请求?它应该是什么样子?我不知道。
Node.js 旨在从磁盘的 /public
路径提供静态文件以轻松处理它,所以我很挣扎,因为它不允许我手动处理文件检索(它只是询问路径并自行处理文件)以便从虚拟内存中获取文件。
最佳答案
是的,当浏览器看到<script>
时标签,它将对 JavaScript 文件发出新的请求。在 Node 中,您可以创建一个新的 express.get()
监听器并发送 JavaScript,就像发送 HTML 一样。
res.send(javascript-string-from-virtual-memory)
关于javascript - 如何从虚拟内存中为node.js提供html+js服务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55227397/