首页 > 解决方案 > 如何在不使用 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 环境说明您的答案。

标签: htmlnode.jsrestembedded-javascript

解决方案


如果您希望服务器将数据呈现为 HTML,您可以使用某种模板引擎。EJS 是一种选择。还有PugHandlebarsMustache等等。


另一种选择是呈现静态 HTML 并编写一些客户端 JavaScript 以从服务器获取原始数据。为此,您将:

  1. 在您的快速应用程序中创建另一个路由,该路由返回带有电影数据的 JSON
  2. 创建从公共目录提供的静态 HTML 文件。
  3. 创建由您的静态 HTML 文件加载的客户端 javascript,该文件获取返回 JSON 的服务器路由,然后根据结果更新您的页面(可能通过 React、Angular、jQuery 或简单地someElement.innerHTML = foundMovie

推荐阅读