Node.js 错误:节点的graphql服务中的请求实体太大
我正在从事基于节点的graphql项目,试图将base64格式的图像发送到服务器 我正在使用bodyparser模块,并将其配置为以下内容Node.js 错误:节点的graphql服务中的请求实体太大,node.js,graphql,body-parser,Node.js,Graphql,Body Parser,我正在从事基于节点的graphql项目,试图将base64格式的图像发送到服务器 我正在使用bodyparser模块,并将其配置为以下内容 app.use(bodyparser.text({type: 'application/graphql'})); app.use(bodyparser.json({limit: '50mb'})); app.use(bodyparser.urlencoded({limit: '50mb', extended: true})); 我能够通过直接节点服务发送
app.use(bodyparser.text({type: 'application/graphql'}));
app.use(bodyparser.json({limit: '50mb'}));
app.use(bodyparser.urlencoded({limit: '50mb', extended: true}));
我能够通过直接节点服务发送base64图像,但当涉及graphql服务时,会抛出错误,如下所示:
错误:请求实体太大
您是否正在使用
graphql express
npm包
如果是这样,那么问题可能是这一行:
如您所见,这将请求的最大大小设置为100kb
我们遇到了同样的问题,并通过分叉存储库和手动增加最大请求大小来修复它
这可能是一个很好的机会,但有助于包!
如果限制是可配置的,那就太好了。为了帮助其他使用graphql瑜伽npm包的人。添加bodyparser选项的语法非常不同,我花了数小时调试并尝试使其工作,因此在此处添加代码以供参考:
const { GraphQLServer } = require("graphql-yoga");
const server = new GraphQLServer({
schema, //Your schema
context, //Your context
});
const options = {
port: 1234
bodyParserOptions: { limit: "10mb", type: "application/json" },
};
server.start(options, () =>
console.log(
"Server is running\m/"
)
);
对我来说,我指定了上传,并且成功了:
const options = {
uploads: {
maxFieldSize: 1000000000,
maxFileSize: 1000000000
}
}
bodyParser
仅适用于req.body
并且在您处理多部分表单时,请尝试设置类型。var urlencodedParser=bodyParser.urlencoded({extended:true,limit:1024*1024*20,type:'application/x-www-form-urlencoding'})Thanq对于您的响应@digit,我尝试过,但对我无效。嗨,Thanq对于您的响应,我使用的是“graphql”模块,而不是“graphql express”模块。啊,好的,很有趣。通常,您将同时使用这两个包。graphql
程序包处理架构、类型、解析程序等,而express graphql
则获取从graphql
程序包创建的架构,并通过express web服务器将其公开到internet。您好,找不到您提供的链接。请更新。