You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Express项目API数据在index.ejs无法展示,控制台打印正常

解决NewsAPI数据在EJS文本区域无法正常展示的问题

问题核心在于你直接把API返回的整个对象传递给了EJS,对象无法通过<%= %>直接转成可读字符串显示,同时你之前尝试的content.articles.titles写法也有误(正确路径是content.articles数组中每个元素的title属性)。以下是具体修复步骤:

1. 修正后端数据传递逻辑

修改index.js的/apiKey路由,直接传递API返回的articles数组(这是新闻数据的实际载体),而非整个data对象:

import express from "express";
import axios from "axios";

const app = express();
const port = 3000;
const urlAndKey = "https://newsapi.org/v2/everything?q=bitcoin&apiKey=7160918468a64df9a7bf26e5915c1f50";

app.get("/", (req, res) => {
  res.render("index.ejs", { 
    newsText: "Your news will display here." 
  });
});

app.get("/apiKey", async (req, res) => {
  try {
    const result = await axios.get(urlAndKey);
    console.log(result.data);
    // 传递articles数组给前端
    res.render("index.ejs", { articles: result.data.articles });
  } catch (error) {
    res.status(404).send(error.message);
  }
});

app.listen(port, () => {
  console.log(`Server running on port: ${port}`);
});

2. 修正EJS前端渲染逻辑

在index.ejs中遍历articles数组,把每篇新闻的关键信息(标题、来源、描述等)拼接成可读文本,填充到textarea里:

<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">
    <div class="img-fluid text-center mt-5">
      <textarea style="border: black; border-style: solid; width:530px; height:150px ;margin-top: 10px;" readonly>
<% if (locals.articles && articles.length > 0) { %>
<% articles.forEach((article, index) => { %>
<%= index + 1 %>. <%= article.title %>
来源: <%= article.source.name %>
描述: <%= article.description %>
----------------------------------------
<% }) %>
<% } else { %>
<%= locals.newsText || "暂无新闻数据" %>
<% } %>
      </textarea>
    </div>
  </div>
</div>

修复说明

  • 后端传递articles数组后,前端可直接遍历每条新闻数据;
  • 通过forEach循环格式化每篇新闻的序号、标题、来源、描述,确保textarea内容清晰可读;
  • 增加判断逻辑,无新闻数据时显示提示文本,避免页面空白或错误信息。

内容的提问来源于stack exchange,提问作者Techgorilla

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 17:40:36