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