Node和Express中的Rest API,与ejs和React.js一起使用[关闭]

问题描述 投票:0回答:1

我已经用Nodejs和express创建了REST API,其他开发者将在前端使用ReactJS或PHP。

现在我也想在同一个项目中用EJS使用该API。是否可以在EJS中使用相同的API,如果可以,那么用EJS模板引擎调用该API的正确方法是什么?

node.js api rest express ejs
1个回答
0
投票

有多种方式,你可以使用这个。你可以获取你的数据,并将值传递给视图。

因此,对于一个例子。

app.get('/', function (req, res) {
  const users = await db.users.find({});
  res.render('index', { users })
})

在这种情况下,index将是ejs模板 你可以呈现用户列表。

或者,你也可以使用javascript与你的模板,并调用你的API作为ajax调用。


0
投票

最好的方法是调用你的 API 并为视图传递一个带有本地变量的对象。

假设你有一个看起来像下面的模板。

<!-- views/posts.ejs -->
<div>
  <% items.forEach(function(item) { %>
    <ul>
      <li><%= item.userId %></li>
      <li><%= item.id %></li>
      <li><%= item.title %></li>
      <li><%= item.body %></li>
    </ul>
  <% }); %>
</div>

然后,在你的路由处理程序中,你将执行以下操作。

const express = require("express");
const app = express();

app.route("/posts")
  .get(function (req, res) {
    axios
      .get("https://jsonplaceholder.typicode.com/posts")
      .then(function (result) {
        res.render("posts", {
          items: result.data
        });
      })
      .catch(function (error) {
        // handle errors appropriately
        res.render("error", { error });
      });
  });
© www.soinside.com 2019 - 2024. All rights reserved.