在节点中为 xml 模板化 ejs

templating ejs in node for xml

我有一个格式良好的大 xml,我想要像 ejs 一样的模板。

<foo>
  <url><%= url %></url>
<foo>

但如果我这样做

res.render('template.xml', { url: 'http://foo.com' })

我得到

Error: Cannot find module 'xml'

任何人都可以建议如何处理它吗?我只需要在已经形成的 xml 中插入值,我不想通过模式将对象序列化为 xml。

根据我的评论回答。所有模板文件都应具有 ejs 扩展名以便 express 能够找到它,因此您需要将模板从 template.xml 重命名为 template.ejs。代码示例如下所示:

res.render('template', { url: 'http://foo.com' })

您可能需要为客户端设置 HTTP Header:

res.setHeader('content-type', 'text/xml');