html - 使用 Node.js 和 HTML 网站模板提供 HTML

标签 html node.js express pug

我使用 Node.js 创建了一个主菜单(导航)。我在express下使用Jade作为模板引擎。菜单是用纯 HTML 和 CSS 创建的。

Node.js 旨在通过 URL 提供菜单。我想将此菜单包含到现有的 Web 应用程序中,并且它应该由 Node.js 提供。我在我的 website.html 中考虑了类似以下内容:

<body>
  <!-- begin: include main menu -->
  <script type="text/javascript" src="http://127.0.0.1:3000/menu"></script>
  <!-- end: include main menu -->
  the rest of the application/website
  ...
</body>

我在路由机制中使用以下代码将一些 HTML 传递到我的网站,但我认为这确实是肮脏的做法:

res.send("document.write('SOME_HTML_GOES_HERE')");

但是我需要将views/menu.jade 作为HTML 片段传递回website.html。我已经返回了整个 HTML 网站:

res.render('index', { title: 'Express & Jade' });

如何使用模板机制让 Node 交付的非 Node.js 应用程序加载菜单?

最佳答案

您应该使用 iframe 来包含 node.js 菜单。您可以包含 Express 和 Jade 呈现的 HTML:

<iframe src="http://127.0.0.1:3000/menu"></iframe>

话虽这么说,我认为您应该尝试从端口 80 为您的所有网站提供服务。许多用户无法访问端口 3000。

如果您将网站托管在 node.js(端口 3000)和 Apache(端口 80)上,则应尝试在它们前面部署代理。我用过HAProxy去做这个。在我的例子中,代理在端口 80 上运行,Apache 在 8000 上运行,node.js 在 3000 上运行。我有简单的规则将请求重定向到 node.js 或 Apache。

关于html - 使用 Node.js 和 HTML 网站模板提供 HTML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14497764/

相关文章:

jquery - 在图像上放置文本

javascript - Jquery Mobile 复制自动分隔符

javascript - 将此 PHP RS232 代码移植到 Node.js

express - 有没有办法使用 Express 服务器重定向 NuxtJs 应用程序?

javascript - 将 div 中的数字从数字转换为整数

javascript - 向下滚动时显示导航

node.js - AWS 上的 Node EADDRINUSE,与端口无关

c# - 使用 Azure 进行存储的 Web 应用程序

node.js - 如何向url添加多个查询值

javascript - Node Js Express 遍历数组