Ada*_*dam 15 html markup node.js
在php文件中,我可以这样做:
<p><?php echo "hello!";?></p>
Run Code Online (Sandbox Code Playgroud)
有没有办法在节点中执行此操作,如果是的话,它的逻辑是什么?
我知道如何做到这一点:
在HTML文件中为节点使用标识符标记,如: <node>code</node>
在Node中加载和解析HTML文件
从HTML文件中获取节点标记并运行它
但我不确定这是不是最好的方式,即使它有效:)
请注意我想学习node.js
,所以表达和其他库和模块不是我的答案,因为我想知道这个过程的逻辑.
Ray*_*nos 18
你描述/要求node.js预处理器的内容.它确实存在,但它被认为是有害的.
更好的解决方案是使用express中使用的视图.看一下截屏视频.
如果你必须从头开始做所有事情,那么你可以编写一个微模板引擎.
function render(_view, data) {
var view = render.views[view];
for (var key in data) {
var value = data[key];
view.replace("{{" + key + "}}", value);
}
return view;
}
render.views = {
"someView": "<p>{{foo}}</p>"
};
http.createServer(function(req, res) {
res.end(render("someView", {
"foo": "bar"
}));
});
Run Code Online (Sandbox Code Playgroud)
有充分理由将php/asp/js代码与HTML直接混合是很糟糕的.它不会促进关注的分离并导致意大利面条代码.这些天的标准方法是如上所述的模板引擎.
想进一步了解微模板?阅读J. Resig撰写的文章.
您可以尝试使用 JooDee,这是一个节点网络服务器,它允许您在网页中嵌入服务器端 javascript。如果您熟悉 Node 和 PHP/ASP,那么创建页面是轻而易举的。以下是页面外观示例:
<!DOCTYPE html>
<html>
<: //server side code in here
var os = require('os');
var hostname = os.hostname();
:>
<body>
<div>Your hostname is <::hostname:></div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
使用 JooDee 还可以让您通过将属性附加到“客户端”对象服务器端,并在客户端 javascript 中访问生成的“客户端”对象,轻松地向客户端公开服务器 javascript 变量。
https://github.com/BigIroh/JooDee
归档时间: |
|
查看次数: |
13089 次 |
最近记录: |