Я пытаюсь выполнить запрос GraphQL в AWS AppSync с помощью клиента NodeJS.Для начала я использовал руководство Amazon .
Мой код выглядит примерно так:
global.WebSocket = require('ws');
global.window = global.window || {
setTimeout: setTimeout,
clearTimeout: clearTimeout,
WebSocket: global.WebSocket,
ArrayBuffer: global.ArrayBuffer,
addEventListener: function () { },
navigator: { onLine: true }
};
global.localStorage = {
store: {},
getItem: function (key) {
return this.store[key]
},
setItem: function (key, value) {
this.store[key] = value
},
removeItem: function (key) {
delete this.store[key]
}
};
require('es6-promise').polyfill();
require('isomorphic-fetch');
const AWSAppSyncClient = require('aws-appsync').default;
const AUTH_TYPE = require('aws-appsync/lib/link/auth-link').AUTH_TYPE;
const gql = require('graphql-tag');
const handleError = (err) => {
// console.error(err);
throw err;
}
const myFunc = (inputValue) => {
const query = gql(`
// query text in here (works on the AppSync UI)
`);
const client = new AWSAppSyncClient({
url: url,
region: region,
auth: {
type: AUTH_TYPE.API_KEY,
apiKey: apiKey
},
disableOffline: true
});
client.hydrated().then((client) => {
client.query({ query: query, fetchPolicy: 'network-only' })
.then(res => {
console.log("res: " + res);
// some checks on res, then return either true or false
})
.catch(handleError);
});
}
async function main() {
let res;
try {
res = await hasDeliveryOptions("inputValue");
} catch (err) {
res = false;
} finally {
console.log("res: " + res);
}
}
main();
У меня проблемы с возвратом любого значения из улова.Я получаю "res: undefined".
Я относительно новичок в NodeJS, поэтому, возможно, я настроил его совершенно неправильно.Может ли кто-нибудь указать, что мне нужно сделать, чтобы иметь возможность вернуть значение из улова?