簡體   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