如何使用 node.js GOT http 请求库进行故障排除?
how to troubleshoot using the node.js GOT http request library?
我有一些使用 GOT 查询 graphQL 端点的代码:
// set up params for call to weather cache
const queryQL = `
query weather {
weather(where: {idLatLong: {_eq: "${latLong}"}}) {
id
idLatLong
updated_at
lat
long
requestedByUserId
data
created_at
}
}
`
const query = {query: queryQL};
const options = {
headers: {
'X-Hasura-Admin-Secret': process.env.HASURA_KEY
},
responseType: 'json'
}
// see if there's an existing record for the lat long
try {
const response = await got.post(process.env.GQL_ENDPOINT, query, options);
console.log('query weather hasura');
console.log(response.body);
} catch(error) {
console.log(error);
}
我收到了 Hasura 的回复 {"errors":[{"extensions":{"path":"$","code":"invalid-headers"},"message":"Missing Authorization header in JWT authentication mode"}]}
如何查看 GOT 发送到 GQL 端点的内容?仅供参考,此调用在 GQL 控制台和 Postman 中运行良好。
got()
库有挂钩,可以让您看到它即将发送的 headers。这是一个示例,您可以 运行 然后将相同的内容插入到您的代码中:
const got = require('got');
got("http://www.google.com", {
hooks: {
beforeRequest: [function(options) {
console.log(options);
}]
}
}).then(result => {
let i = 1;
}).catch(err => {
console.log(err);
});
您还可以将 Wireshark 之类的网络分析仪安装在您的客户端计算机上,然后观察实际的网络流量。
我有一些使用 GOT 查询 graphQL 端点的代码:
// set up params for call to weather cache
const queryQL = `
query weather {
weather(where: {idLatLong: {_eq: "${latLong}"}}) {
id
idLatLong
updated_at
lat
long
requestedByUserId
data
created_at
}
}
`
const query = {query: queryQL};
const options = {
headers: {
'X-Hasura-Admin-Secret': process.env.HASURA_KEY
},
responseType: 'json'
}
// see if there's an existing record for the lat long
try {
const response = await got.post(process.env.GQL_ENDPOINT, query, options);
console.log('query weather hasura');
console.log(response.body);
} catch(error) {
console.log(error);
}
我收到了 Hasura 的回复 {"errors":[{"extensions":{"path":"$","code":"invalid-headers"},"message":"Missing Authorization header in JWT authentication mode"}]}
如何查看 GOT 发送到 GQL 端点的内容?仅供参考,此调用在 GQL 控制台和 Postman 中运行良好。
got()
库有挂钩,可以让您看到它即将发送的 headers。这是一个示例,您可以 运行 然后将相同的内容插入到您的代码中:
const got = require('got');
got("http://www.google.com", {
hooks: {
beforeRequest: [function(options) {
console.log(options);
}]
}
}).then(result => {
let i = 1;
}).catch(err => {
console.log(err);
});
您还可以将 Wireshark 之类的网络分析仪安装在您的客户端计算机上,然后观察实际的网络流量。