javascript - 如何从虚拟内存中为node.js提供html+js服务?

标签 javascript html node.js express

上下文

我正在制作一个浏览器内的 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/

相关文章:

javascript - Node-cmd 打印 Microsoft Word 文档

node.js - node.js 是否保留异步执行顺序?

javascript - 在 Chrome 中绕过 "Confirm Navigation"对话框

node.js - Node Express.js - 从内存下载文件 - 'filename must be a string'

javascript - 简单组件未呈现 : React js

javascript - 打印 javascript 对象时如何修改 chrome 控制台中的输出

javascript - 如何在实现 css 中监听 <select> 更改事件

javascript - 当用户输入时,根据语法更新文本区域上的文本?

html - CSS/HTML 对象居中对齐

css网格,布局问题