所以我首先进入Node / Express头部(带有学习Javascript中级的东西)并且有点混淆为什么需要像Jade或EJS这样的“视图引擎”?
我似乎无法找到只使用普通HTML5的东西?或者是我不能用快速传递值到普通的HTML?
让我假装我有一个index.html页面加载,当我“登录”时,它加载了顶部发布的用户名(例如)。我可以不将值传递给快递中的普通.html文件吗?
答案 0 :(得分:5)
Express / Node需要View Engine吗?
不,不是必需的。 Express可以随意为静态HTML5文件提供服务。你不需要一个视图引擎。您可以为每个页面创建自定义路由并使用res.sendFile()
,也可以使用express.static()
自动提供静态HTML文件的整个目录,也可以编写自己的代码来构建您想要的任何HTML5内容发送并使用res.send()
发送。
如果您需要一个模板类型的系统,您可以在其中创建一个带有动态内容占位符的HTML模板,然后将动态值插入到服务器上的页面中。
我是否可以将值传递给express中的普通.html文件?
不,你不能用常规快递做到这一点。 Express具有提供静态HTML文件的功能,但不适用于将动态内容插入HTML文件。这就是你使用视图引擎的原因。 Express本身没有构建这种功能,因为有许多不同的视图引擎哲学,Express并不想要一种风格,所以它支持一个视图引擎界面,用于从模板渲染,你可以选择哪个视图引擎你想用。
答案 1 :(得分:2)
回答主要问题 - 快递/节点不需要视图引擎。
你是对的,你不能将变量/值传递给纯html。视图引擎可以查看您传递的数据并为您生成html标记。
使用视图引擎的另一种方法是使用s前端库/框架,如jquery,react或angular(或者你可以使用普通的javascript)。 javascript可以检索数据(使用ajax / fetch)并将其绑定到你的html - 我想如果你使用普通的javascript或jquery它就不会被绑定,但你可以用你的数据更新DOM