Javascript Express GraphQL必须提供查询字符串。
我是AWS lambda和GraphQL的新手。我正在尝试将Express GraphQL应用程序部署到AWS Lambda index.js文件Javascript Express GraphQL必须提供查询字符串。,javascript,amazon-web-services,express,aws-lambda,graphql,Javascript,Amazon Web Services,Express,Aws Lambda,Graphql,我是AWS lambda和GraphQL的新手。我正在尝试将Express GraphQL应用程序部署到AWS Lambda index.js文件 const awsServerlessExpress = require("aws-serverless-express"); var express = require("express"); var graphqlHTTP = require("express-graphql"); var { buildSchema } = re
const awsServerlessExpress = require("aws-serverless-express");
var express = require("express");
var graphqlHTTP = require("express-graphql");
var { buildSchema } = require("graphql");
// Construct a schema, using GraphQL schema language
var schema = buildSchema(`
type Query {
hello: String
}
`);
// The root provides a resolver function for each API endpoint
var root = {
hello: () => {
return "Hello world!";
}
};
var app = express();
app.use(
"/",
graphqlHTTP({
schema: schema,
rootValue: root,
graphiql: true
})
);
const server = awsServerlessExpress.createServer(app);
exports.handler = (event, context) =>
awsServerlessExpress.proxy(server, event, context);
Expected Output:
但在AWS Lambda控制台中执行AWS Lambda函数时出错
Current Output:
您的服务器很好。我认为问题在于你的质疑。不知怎的,它变形了。因为你没有包括在内,我们真的不能确定。但是,如果您的请求具有
Content-Type: 'application/graphql'
或
您将请求主体设置为如下所示:
{"query": "{hello}" }
注意引号的位置;如果这是JSON,它的格式必须像JSON一样。嘿,这不是解决问题的方法,但使用起来可能会更容易一些,因为您不需要所有的express内容。您好,我想使用express GraphQL在“/”端点上安装GraphQL服务器@Herku这一错误的背景是什么?当您的请求不包含查询时,会出现此结果(因此在get
?query={…}
或post data{“query”:“{…}
)。如果在没有必要参数的情况下运行标准AWS lambda测试,您可能会得到此响应。此外,我不确定AWS lambda版本是否能够提供GraphiQL。Hello@srinivas,您是否解决了此错误?在将lambda函数部署到AWSHello@Rap后,我遇到了相同的错误,我还尝试了{“query”:“{Hello}”
在我的本地机器上。它在我的本地服务器上工作得很好。当我在AWS上上载lambda函数的相同zip文件时,我遇到了一个错误,“必须提供查询字符串”。您能告诉我到底发生了什么吗?
{"query": "{hello}" }