gpt4 book ai didi

node.js - 为什么我无法使用 axios 从 graphql 获得可用的响应?

转载 作者:太空宇宙 更新时间:2023-11-04 01:29:53 27 4
gpt4 key购买 nike

我已成功通过服务器进行身份验证,发送 graphql 请求并接收响应。然而,回应并不完全正确。

这只是一个简单的nodejs、axios、graphql情况。我可以通过 postman 或 curl 获得正确的响应,但不能通过 Node 获得正确的响应。我也尝试过fetch,但没有成功。难道我做错了什么?这是针对producthunt api的,api资源管理器位于here

require('dotenv').config()
const axios = require("axios");
const PH_KEY = process.env.PH_KEY;
const PH_SECRET = process.env.PH_SECRET;
const BASE_URL = process.env.BASE_URL;
const AUTH_URL = process.env.AUTH_URL;
const GRAPHQL_URL = process.env.GRAPHQL_URL;
const PH = axios.create({
baseURL: BASE_URL,
responseType: 'json',
headers: {
// 'Accept': 'application/json, text/plain, gzip, deflate, */*',
'Content-Type': 'application/json'
},
})
let TOKEN = 'Bearer '

const getAuth = async () => {
return await PH({
url: AUTH_URL,
method: "post",
data: {
client_id: `${PH_KEY}`,
client_secret: `${PH_SECRET}`,
grant_type: "client_credentials"
}
})
.then((res) => {
console.log('auth status ', res.status)
return res.data.access_token
})
.then((res) => {
TOKEN += res
console.log(TOKEN)
})
.catch((err) => {
console.log(err)
})
}

const getHunt = async () => {
await getAuth()
PH.defaults.headers.common['Authorization'] = TOKEN
return await PH({
url: GRAPHQL_URL,
method: 'post',
data:
{
query: `
query posts {
posts(order: RANKING, first: 1) {
edges {
node {
name
votesCount
user {
name
}
createdAt
}
}
}
}
`
}
})
.then((res) => {return res})
.then((res) => {
console.log(res.data)
return res.data
})
.catch((err) => {
console.log(err)
})
}
const Main = async () => {
await getHunt()
}
Main()

这是我在 Node 中收到的输出:

[Running] node "/Users/fireinjun/Work/YAC/yac-ph-tophuntfunction/app.js"
auth status 200
Bearer #################################################
{ data: { posts: { edges: [Array] } } }

这是我所期待的:

{
"data": {
"posts": {
"edges": [
{
"node": {
"name": "Trends by The Hustle",
"votesCount": 125,
"user": {
"name": "Jack Smith"
},
"createdAt": "2019-06-04T07:01:00Z"
}
}
]
}
}
}

最佳答案

我访问数据不正确!显然我需要查看 res.data.data.posts.edges[0]

关于node.js - 为什么我无法使用 axios 从 graphql 获得可用的响应?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56446091/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com