使用NodeJS和翻新的多部分数据问题

时间:2019-09-16 19:35:08

标签: javascript java android node.js retrofit

我在我的android应用中对此进行了改装。

@Multipart
@POST("myEndpoint")
Call<...> myMethod(@Header("Authorization") String auth, @Part("part") MyHugeObj hugeObj);

我想要的是将一个非常大的对象发送到我的NodeJS后端,该对象将转换为同样巨大的json字符串。只是为了提供信息,我的巨大对象包含一个300KB至5MB左右的图像(Base64编码)。

我在NodeJS中要解析的是:

app.use(bodyParser.urlencoded({
    extended: true
}));
app.use(bodyParser.json({limit: '300kb'}));
const multer = require('multer');
const upload = multer();

const myController = require('myPath');

router.post('/myEndpoint', upload.none(), (req, res, next) => myController.doWhatever(req, res, next));

实际上,一切都很好,我巨大的json到达了我的后端,我做了与图像和其余信息有关的工作,成功响应到达了我的android应用程序。就是这样,一切正常。问题是在我的NodeJS控制台中弹出此错误:

Error: request entity too large
    at readStream (...)
    at getRawBody (...)
    at read (...)
    at rawParser (...)
    at trim_prefix (...)
    at Function.process_params (...)
    at next (...)
    at Layer.handle [as handle_request] (...)
    at trim_prefix (...)
    at Function.process_params (...)
    at next (...)
    at serveStatic (...)
    at Layer.handle [as handle_request] (...)
    at trim_prefix (...)
    at Function.process_params (...)
    at Immediate.next (...)
    at Immediate._onImmediate (...)
    at runCallback (...)

问题是:为什么会这样?我什至没有定义原始解析器,我只拥有json和urlEncoded。

编辑1: 它与响应有关。如果我没有发送成功或错误响应,则不会弹出此错误。

0 个答案:

没有答案