繁体   English   中英

错误:请求实体在节点的graphql服务中太大

[英]Error: request entity too large in graphql services of node

我正在基于节点的graphql项目上工作,尝试将base64格式的图像发送到服务器。

我正在使用bodyparser模块,并将其配置为波纹管。

app.use(bodyparser.text({type: 'application/graphql'}));

app.use(bodyparser.json({limit: '50mb'}));
app.use(bodyparser.urlencoded({limit: '50mb', extended: true}));

我能够通过直接节点服务发送base64图像,但是当涉及到graphql服务时,它会抛出如下错误:

错误:请求实体太大

为了帮助其他使用graphql-yoga 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/" 
  )
);

您是否正在使用graphql-express npm软件包?

如果是这样,那么问题可能出在以下这一行: https : //github.com/graphql/express-graphql/blob/master/src/parseBody.js#L112

如您所见,这为请求设置了最大100kb的大小。

我们遇到了同样的问题,并通过分叉存储库来解决此问题,并手动增加了最大请求大小。

不过,这可能是一个为包装做出贡献的好机会! 如果限制是可配置的,那就太好了。

对我来说,我指定了上传文件,并且可以正常工作:

const options = {
  uploads: {
    maxFieldSize: 1000000000,
    maxFileSize: 1000000000
  }
}

bodyParser仅与req.body一起req.body ,在您的情况下,您正在处理多部分表单

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM