html - 如何在不使用 EJS 的情况下将数据传输到模板?
问题描述
app.get("/movies", function(req, res) {
Movies.find({}, function (err, foundMovie){
if(err) {
console.log(err);
} else {
res.render("movies/index", {movie_index:foundMovie});
}
}
});
我有这段代码可以找到一部电影并将找到的电影发送到 EJS 文件。该路由是按照 RESTful 路由创建的。我可以随意在我的 EJS 文件中显示关于该 foundMovie 的任何内容。然后,EJS 文件获取 foundMovie 并对其进行操作。然后 EJS 文件将由app.js在提到的路由上呈现。
我的问题如下:
1-由于我不想使用 EJS,如何将 data/foundMovie 从 app.js 传输到 HTML 文件。
2 - 如何在不使用 EJS 语法的情况下使用 HTML 文件中的 data/foundMovie (<%= movie_index.name%> )
注意:请仅针对 NodeJS 环境说明您的答案。
解决方案
如果您希望服务器将数据呈现为 HTML,您可以使用某种模板引擎。EJS 是一种选择。还有Pug、Handlebars、Mustache等等。
另一种选择是呈现静态 HTML 并编写一些客户端 JavaScript 以从服务器获取原始数据。为此,您将:
- 在您的快速应用程序中创建另一个路由,该路由返回带有电影数据的 JSON
- 创建从公共目录提供的静态 HTML 文件。
- 创建由您的静态 HTML 文件加载的客户端 javascript,该文件获取返回 JSON 的服务器路由,然后根据结果更新您的页面(可能通过 React、Angular、jQuery 或简单地
someElement.innerHTML = foundMovie
)
推荐阅读
- sql - 将数据类型 nvarchar(50) 转换为数值时出错
- android - 如何解决 Flutter 中“运行 Gradle 时出错:”?
- javascript - 字符串转整数leetcode
- node.js - 无法到达 mongo db 容器
- android - Android中的缩放动画会降低图像质量
- woocommerce - Woocommerce wc_get_products() $args - 如何显示指定“所有”标签的帖子?
- linq - 如何通过 API 在中间表中插入多个值
- amazon-web-services - 使用 AWS CLI 为其他类型(明文)创建 AWS SecretsManager
- wordpress - 在 wordpress 的 lerandash 问题页面中添加自定义文件
- python - 收到错误:ValueError:要解包的值太多(预期为 2)