【问题标题】:Promise in Node.js for storing and using a JSON inside the code [duplicate]在 Node.js 中承诺在代码中存储和使用 JSON [重复]
【发布时间】:2021-09-20 23:36:26
【问题描述】:

我有一个代码,它使用 node-fetch (npm node-fetch) 和 获取网页的 JSON(来自链接)并通过承诺将其打印到控制台中.那么

我需要获取此特定网页的内容才能与我拥有的项目的内容一起使用,但我看不到任何关于如何真正使用它的解决方案

我有这个代码:

fetch('https://api.faceit.com/core/v1/nicknames/'+req.query.nickname)
        .then(res => res.text())
        .then(body => console.log("json -> "+body))

req.query.nickname 是一个文本变量,取自用于打印 JSON 的链接的表单

现在,当我到达 .then(body => console.log("json -> "+body)) 时,它会正确打印我的 JSON,但我不知道如何使用我打印的身体

现在,毕竟,我有两个问题

  • 如何使用“body”变量处理从该链接获取的数据?
  • 是否有任何不同的方式(更好或不更好)从页面获取内容,存储到变量或对象中,我可以使用?

提前感谢大家的帮助。如果您需要我需要使用的 JSON 示例,可以使用 https://api.faceit.com/core/v1/nicknames/noxter

【问题讨论】:

  • 是的,现在,它确实比做什么和不做什么更清楚,但在解决方案部分它只是打印它需要打印的东西我需要使用它,而不是打印它.这是我的问题,仍然感谢您分享该线程,使很多事情变得清晰
  • 然后只需将console.log 替换为您实际需要做的任何事情?只有在那里您才能访问body。请注意,我并不是建议您在 .then 回调中编写整个程序 - 但是编写一个以 body 作为参数的函数,然后从 .then 调用它是正常的。
  • 我已经完成了,它有效,非常高兴你的帮助,非常感谢!

标签: javascript node.js json promise node-fetch


【解决方案1】:

使用res.json() 而不是res.text() 将数据作为对象而不是字符串获取。

然后你可以像往常一样使用DOM methods更新页面。

【讨论】:

  • 我进入了那里,很好,现在我正在尝试了解如何在 Node 上使用 DOM,因为它是一个运行时 - 当我尝试使用 DOM 时,它会显示 ReferenceError: document is not defined
  • 哦。错过了您使用的是 Node.js。你会想要使用模板引擎而不是 DOM。 expressjs.com/en/guide/using-template-engines.html 如果您使用 Express(几乎可以肯定应该使用)
  • 如果我使用 ejs 而不是 pug,这会产生任何冲突吗?
  • 如果您使用 EJS,请使用 EJS。不要混合和匹配模板引擎。
  • 我已经完成了它并且它有效,很高兴你帮助了我并且你花时间这样做,非常感谢你
猜你喜欢
  • 1970-01-01
  • 2018-12-09
  • 2017-04-03
  • 1970-01-01
  • 1970-01-01
  • 2015-01-06
  • 1970-01-01
  • 2021-12-10
  • 2018-02-01
相关资源
最近更新 更多