1

我使用 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 应用程序中加载菜单?

4

1 回答 1

0

您应该使用 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。

于 2013-01-24T16:03:37.997 回答