使用Node.js提供HTML并模板化到HTML网站

时间:2013-01-24 09:21:31

标签: html node.js express pug

我使用Node.js创建了一个主菜单(导航)。我使用Jade作为express下的模板引擎。菜单以纯HTML和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应用程序中加载菜单?

1 个答案:

答案 0 :(得分: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。