我试图将newsapi.org/docs上的API包含到我的项目中,get请求工作,它在控制台日志中显示结果,但不在ejs页面上。
import express from "express";
import bodyParser from "body-parser";
import axios from "axios";
const app = express();
const port = 3000;
const API_URL = "https://newsapi.org/v2/everything?q=tesla";
const APIKEY ="&apiKey=7160918468a64df9a7bf26e5915c1f50";
app.use(express.static("public"));
app.use(bodyParser.urlencoded({ extended: true }));
app.get("/", (req, res) => {
res.render("index.ejs");
});
app.get("/apiKey", async (req, res) => {
try {
const response = await axios.get(API_URL + APIKEY);
const result = response.data;
console.log(result);
res.render("index.ejs", { content: response.data });
} catch (error) {
res.status(404).send(error.message);
}
});
app.listen(port, () => {
console.log(`Server running on port: ${port}`);
});
<body>
<div class="container col-7">
<div class="row">
<div class="col-4">
<a href="/apiKey" class="btn btn-primary pill-rounded">Get All The NEWs</a> </div>
</div>
<div class="col-8">
<%if (locals.data) {%><div class="img-fluid text-center mt-5">
<textarea style="border: black; border-style: solid; width:530px; height:150px ;margin-top: 10px;" readonly>
<%= content.articles %>
</textarea>
</div>
<%}%>
</div>
字符串
我正在尝试在ejs文件中显示结果。我不知道我做错了什么。
1条答案
按热度按时间kfgdxczn1#
Express docs声明:
要呈现模板文件,请设置以下应用程序设置属性,这些属性在生成器创建的默认应用程序中的app.js中设置。
你应该在你的app.js或index.js或任何你的app文件中设置这个:
字符串
您还需要重新构造项目,以便为每个ejs视图创建一个
views
文件夹,其中包含不同的文件。您的视图需要使用News API返回给您的数据,这些数据现在存储在您传递给视图的对象中,在您的情况下,使用该对象的
content
属性访问,如下所示:型