如何在不使用模板的情况下插入变量?
Posted
技术标签:
【中文标题】如何在不使用模板的情况下插入变量?【英文标题】:How can I interpolate variables with out using a template? 【发布时间】:2017-07-25 12:56:58 【问题描述】:我是 node / express 的新手(来自 php),我想做一些非常简单的事情,我认为在 Node.js 中会更容易。
例如,在 PHP 中,如果我有一个 index.php 文件,我可以这样做。
<php echo "$var">
在我的“index.php”文件中获取一个变量,该文件主要由 html 组成,尽管有扩展名。
我知道这不存在,但为什么不类似
<js-engine output "var">
这是 PHP 的等价物。
<!DOCTYPE html>
<html>
<base href=<?php echo $dir_base;?> target="_blank">
<head>
如何在不使用模板的情况下在节点环境中实现同样的效果。我不需要模板的复杂性,从技术上讲,这不是模板,它不会重复。只是一个简单的插值变量以在我的 HTML 中使用。我试过这个tuts+ tut 无济于事。我开始认为这是唯一的方法。
我的文件主要是 HTML,我只是使用下面的代码来发送它。 我需要在文件本身中设置变量。
app.get('/', function(req, res)
res.sendfile(path_index_resolved);
);
【问题讨论】:
要么使用模板,要么在将字符串发送回前端之前组合字符串... “在发送到后端之前”如何组合字符串? 【参考方案1】:没有模板你可以组合字符串:
var myText = '<!DOCTYPE html>';
myText += '<html><base href="'+link+'"> target="_blank"><head>';
// and so on
res.send(myText);
但是,我更喜欢使用模板或像 angular2 这样的前端和 node.js...有 templates in express 值得一看。
【讨论】:
我更新了我的问题。我有一个完整的 HTML 文件,我只需要制作一些部分变量。谢谢。 我已经更新了答案,请查看模板文档。【参考方案2】:很遗憾,您不能像 PHP 那样使用 Node.js。您需要手动传递变量(使用内插值提供 html - HTML 作为字符串)或使用某种模板引擎。
如果您选择模板引擎解决方案,您可以使用例如Pug、Mustache 和EJS。
【讨论】:
以上是关于如何在不使用模板的情况下插入变量?的主要内容,如果未能解决你的问题,请参考以下文章
如何在不使用 js 或 html 的情况下摆脱 django 模板变量中的空间和 amp