Javascript GraphQL:错误:必须提供文档

Javascript GraphQL:错误:必须提供文档,javascript,graphql,apollo,graphql-js,apollo-server,Javascript,Graphql,Apollo,Graphql Js,Apollo Server,更新:阿波罗已经更新了代码和文档,所以这个问题现在无关紧要了 预期结果 使用中的以下代码段启动apollo server express 实际结果: 在apollo server express的任何实现中,使用文档、使用等,我一次又一次地收到以下堆栈跟踪: Error: Must provide document at invariant (~/node_modules/graphql/jsutils/invariant.js:18:11) at Object.validate

更新:阿波罗已经更新了代码和文档,所以这个问题现在无关紧要了

预期结果

使用中的以下代码段启动apollo server express

实际结果:

在apollo server express的任何实现中,使用文档、使用等,我一次又一次地收到以下堆栈跟踪:

Error: Must provide document
    at invariant (~/node_modules/graphql/jsutils/invariant.js:18:11)
    at Object.validate (~/node_modules/graphql/validation/validate.js:58:34)
    at doRunQuery (~/node_modules/apollo-server-core/dist/runQuery.js:80:38)
    at ~/node_modules/apollo-server-core/dist/runQuery.js:20:54
    at <anonymous>

在我的例子中,我得到这个错误是因为我在对graphql服务器的请求中没有使用正确的密钥

我正在发送一个
变异请求,我认为对象中的键应该是
“变异”
,但结果是查询和变异请求都使用键
“查询”


在我的例子中,我得到这个错误是因为我在对graphql服务器的请求中没有使用正确的密钥

我正在发送一个
变异请求,我认为对象中的键应该是
“变异”
,但结果是查询和变异请求都使用键
“查询”


我使用jqueryajax对graphql服务器(apolloserverexpress)进行httppost请求,在查询变异时遇到了这个错误。原因与所描述的相同。为了帮助其他谷歌用户,我在这里粘贴了完整的方法-

(function() {
    globals.makeGraphQLRequest('graphql', {
        query: `query($email: String!) {
            profile(email: $email) {
                id mobile name email dob gender
            }
        }`,
        variables: {
            email: 'varunon9@gmail.com'
        }
    }, function successCallback(response) {
        console.log(response);
    });

    globals.makeGraphQLRequest('graphql', {
        query: `mutation($email: String!) {
            updateUser(email: $email) {
                email
            }
        }`,
        variables: {
            email: 'varunon9@gmail.com'
        }
    }, function successCallback(response) {
        console.log(response);
    });
}());
makeGraphQLRequest-

globals.makeGraphQLRequest = function(url, params, successCallback) {
    $.ajax({
        url: url,
        method: 'post',
        data: params,
        dataType: 'json',
        success: function(response) {
            successCallback(response);
        },
        error: globals.ajaxErrorHandler
    });
}

我使用jqueryajax对graphql服务器(apolloserverexpress)进行httppost请求,在查询变异时遇到了这个错误。原因与所描述的相同。为了帮助其他谷歌用户,我在这里粘贴了完整的方法-

(function() {
    globals.makeGraphQLRequest('graphql', {
        query: `query($email: String!) {
            profile(email: $email) {
                id mobile name email dob gender
            }
        }`,
        variables: {
            email: 'varunon9@gmail.com'
        }
    }, function successCallback(response) {
        console.log(response);
    });

    globals.makeGraphQLRequest('graphql', {
        query: `mutation($email: String!) {
            updateUser(email: $email) {
                email
            }
        }`,
        variables: {
            email: 'varunon9@gmail.com'
        }
    }, function successCallback(response) {
        console.log(response);
    });
}());
makeGraphQLRequest-

globals.makeGraphQLRequest = function(url, params, successCallback) {
    $.ajax({
        url: url,
        method: 'post',
        data: params,
        dataType: 'json',
        success: function(response) {
            successCallback(response);
        },
        error: globals.ajaxErrorHandler
    });
}

4个月前,我认为对阿波罗来说已经很老了,那就是保持变化。启动套件工作正常。这听起来像是您在响应请求时遇到的错误。通常,当请求正文格式不正确或缺少
Content-Type:application/json
头时,会引发该错误。您应该更新您的问题,以包括您试图如何向服务器发出请求。在清除我的npm缓存和节点单元模块后,我让它工作了!感谢4个月前的家伙,我认为阿波罗已经很老了,这让它一直在变化。初学者工具包工作得很好。这听起来像是您在响应请求时遇到的错误。通常,当请求正文格式不正确或缺少
Content-Type:application/json
头时,会引发该错误。您应该更新您的问题,以包括您试图如何向服务器发出请求。在清除我的npm缓存和节点单元模块后,我让它工作了!谢谢各位
globals.makeGraphQLRequest = function(url, params, successCallback) {
    $.ajax({
        url: url,
        method: 'post',
        data: params,
        dataType: 'json',
        success: function(response) {
            successCallback(response);
        },
        error: globals.ajaxErrorHandler
    });
}