我使用 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/