代码之家  ›  专栏  ›  技术社区  ›  Jose V

如何在节点.js从虚拟内存?

  •  0
  • Jose V  · 技术社区  · 6 年前

    我正在制作一个浏览器内的html/js编辑器,为此我正在使用 memory-fs (虚拟内存)与Webpack和Webpack html插件捆绑用户在编辑器中创建的文件。这些文件被写入虚拟内存,以避免I/O操作,每当任何用户在浏览器编辑器中编译其程序时,都会发生这种情况。

    问题

    使用节点.js,如何为生成的html+js包提供服务?

    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() ? 它应该是什么样子?我不知道。

    节点.js用于从 /public 从磁盘的路径很容易处理,所以我很挣扎,因为它不允许我手动处理文件检索(它只是请求路径并处理文件本身),以便从虚拟内存中获取文件。

    0 回复  |  直到 5 年前
        1
  •  1
  •   edwin    6 年前

    是的,当浏览器看到 <script> express.get() 监听并发送JavaScript,就像发送HTML一样。

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