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

Har*_*han 2 node.js body-parser graphql

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

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

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

app.use(bodyparser.json({limit: '50mb'}));
app.use(bodyparser.urlencoded({limit: '50mb', extended: true}));
Run Code Online (Sandbox Code Playgroud)

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

错误:请求实体太大

Sum*_*ain 5

为了帮助其他使用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/" 
  )
);
Run Code Online (Sandbox Code Playgroud)


mpa*_*ris 1

你使用graphql-expressnpm 包吗?

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

正如您所看到的,这将请求的最大大小设置为 100kb。

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

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