使用 Express 将元标记动态注入 HTML

CLD*_*Dev 5 template-engine node.js express cheerio pug

概括:

我目前正在将 Apache + PHP 堆栈上的网站迁移到 Node + Express,并且想知道在新堆栈下动态注入元标记的最佳方法/最佳实践(如果有的话)是什么。

细节:

在现有堆栈下,通过直接将 PHP 代码添加到 HTML 文件中来动态注入元标记。由于渲染是在服务器端完成的,因此 Facebook/Google+/任何网络爬虫都会正确解释标签。

在新的堆栈下,经过一些研究后,我遇到了两种选择:

  1. 使用 Pug (Jade) 等模板引擎用局部变量渲染 HTML。(不过,用 Pug 的语法重写现有的 HTML 似乎有些过分了?Pug 可以处理 HTML,还是我必须考虑其他模板引擎,如 EJS?您建议我探索什么模板引擎?)
  2. 在渲染开始之前,首先使用 Cheerio 等 DOM 操作插件注入元标记。

在这两种选择之间,哪一种具有更好的性能或者没有实质性差异?您还有其他推荐的方法吗?谢谢!

rsp*_*rsp 5

EJS 可能是最简单的一种,并且与 PHP 非常相似。

您还可以查看 Mustache 和 Handlebars,了解其他选项,只需对现有 HTML 进行最少的更改。

  • 使用 EJS:<html><head><%= yourMetaTags %> ...
  • 有小胡子:<html><head>{{ yourMetaTags }} ...
  • 带车把:<html><head>{{ yourMetaTags }} ...

doT.js 也非常快。

看:

在我看来,仅仅为了插入元标记而解析 HTML 并使用 DOM API 对其进行操作就有点过分了。

另一方面,如果您需要的只是插入元标记,那么您可以使用类似的东西进行简单的正则表达式替换,yourHTML.replace('<head>', '<head>'+yourMetaTags);但随着时间的推移,当您需要更多功能时,它可能会变得更加复杂。毕竟,每个人都曾在人生的某个阶段制作过模板引擎。