【问题标题】:How to use Query Curl on Nodejs如何在 Nodejs 上使用 Query Curl
【发布时间】:2022-01-23 17:31:06
【问题描述】:

我在 Replit 上试过: Picture

但给出了错误(在图片上)

我试过了:https://docs.dlive.tv/api/api/query

为什么没用?

编辑 --> 我解决了! 代码: 第 11 行: JSON.stringify({"query":"query{userByDisplayName(displayname: "POTATO") {username displayname avatar partnerStatus Followers{totalCount}}}"})

【问题讨论】:

标签: node.js curl


【解决方案1】:

您在预期 JSON 时发送表单数据。改为发送 JSON:使用 JSON.stringify,而不是 querystring.stringify

但除此之外,您还有一个问题,即您正在发送一个 GraphQL 查询,令人惊讶的是,它也是有效的 JavaScript(至少在语法方面),但一旦发送就不会变成您想要的东西。将 GraphQL 代码括在反引号 ` 中(并删除 :s 并将 = 更改为 :)。

但是,为此使用node-libcurl,更不用说在低级模式下,对于这项任务来说似乎非常复杂且不必要。我建议改用axios 之类的简单方法:

const axios = require('axios')

async function main () {
  try {
    const result = await axios.post('https://graphigo.prd.dlive.tv/', {
      query: `
        query {
          userByDisplayName(displayname: "POTATO") {
            username
            displayname
            avatar
            partnerStatus
            followers {
              totalCount
            }
          }
        }    
      `
    })
    
    console.log('Result:', result.data)
  } catch (e) {
    if (e.response) {
      console.error('An error occured! Website returned:', e.response.data)
    } else {
      throw e
    }
  }
}

// This exists just so that we can use the async function
// without unhandled rejections.
main().catch(e => { console.error(e); process.exit(1) })

查看复制:https://replit.com/@CherryDT/AxiosTest#index.js

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-06-27
    • 2019-09-18
    • 2015-01-27
    • 2023-03-16
    • 2021-11-05
    • 1970-01-01
    • 1970-01-01
    • 2020-01-08
    相关资源
    最近更新 更多