在Nodejs中处理多部分post方法请求抛出意外的字段错误(Handling multipart post method request in Nodejs throwing Unexpected

编程入门 行业动态 更新时间:2024-10-28 01:27:47
在Nodejs中处理多部分post方法请求抛出意外的字段错误(Handling multipart post method request in Nodejs throwing Unexpected Field Error)

我正在尝试使用Loopj Async Http Client从Android App请求一个post方法,并使用使用Multer Node Server处理请求使用下面的代码

步骤1

public static void post(String url, File entity, AsyncHttpResponseHandler responseHandler) { RequestParams params = new RequestParams(); try { params.put("image",entity); } catch (FileNotFoundException e) { e.printStackTrace(); } client.post(getAbsoluteUrl(url), params, responseHandler); }

getAbsoluteUrl返回实际的Url以发布请求

第2步(节点服务器)

router.post('/upload_image', function(req, res) { console.log(req.files); });

但是,在收到请求后,我的节点js服务器抛出了一些我无法理解的错误,经过几个小时的谷歌搜索和搜索其他选项后,我仍然无能为力解决问题。

这是问题:

POST /upload_image 500 1537.367 ms - 2057 Error: Unexpected field at makeError (/home/jkrishna/Documents/ProjectX/node_modules/multer/lib/make-error.js:12:13) at wrappedFileFilter (/home/jkrishna/Documents/ProjectX/node_modules/multer/index.js:39:19) at Busboy.<anonymous> (/home/jkrishna/Documents/ProjectX/node_modules/multer/lib/make-middleware.js:112:7) at Busboy.EventEmitter.emit (events.js:106:17) at Busboy.emit (/home/jkrishna/Documents/ProjectX/node_modules/multer/node_modules/busboy/lib/main.js:31:35) at PartStream.<anonymous> (/home/jkrishna/Documents/ProjectX/node_modules/multer/node_modules/busboy/lib/types/multipart.js:213:13) at PartStream.EventEmitter.emit (events.js:95:17) at HeaderParser.<anonymous> (/home/jkrishna/Documents/ProjectX/node_modules/multer/node_modules/busboy/node_modules/dicer/lib/Dicer.js:51:16) at HeaderParser.EventEmitter.emit (events.js:95:17) at HeaderParser._finish (/home/jkrishna/Documents/ProjectX/node_modules/multer/node_modules/busboy/node_modules/dicer/lib/HeaderParser.js:68:8) at SBMH.<anonymous> (/home/jkrishna/Documents/ProjectX/node_modules/multer/node_modules/busboy/node_modules/dicer/lib/HeaderParser.js:40:12) at SBMH.EventEmitter.emit (events.js:95:17) at SBMH._sbmh_feed (/home/jkrishna/Documents/ProjectX/node_modules/multer/node_modules/busboy/node_modules/dicer/node_modules/streamsearch/lib/sbmh.js:95:16) at SBMH.push (/home/jkrishna/Documents/ProjectX/node_modules/multer/node_modules/busboy/node_modules/dicer/node_modules/streamsearch/lib/sbmh.js:56:14) at HeaderParser.push (/home/jkrishna/Documents/ProjectX/node_modules/multer/node_modules/busboy/node_modules/dicer/lib/HeaderParser.js:46:19) at Dicer._oninfo (/home/jkrishna/Documents/ProjectX/node_modules/multer/node_modules/busboy/node_modules/dicer/lib/Dicer.js:197:25)

I am trying a request a post method from Android App using Loopj Async Http Client, and handling the request using Node Server which uses Multer By using the code Below

Step-1

public static void post(String url, File entity, AsyncHttpResponseHandler responseHandler) { RequestParams params = new RequestParams(); try { params.put("image",entity); } catch (FileNotFoundException e) { e.printStackTrace(); } client.post(getAbsoluteUrl(url), params, responseHandler); }

The getAbsoluteUrl return the actual Url to post the request

Step-2 (Node Server)

router.post('/upload_image', function(req, res) { console.log(req.files); });

But, after receiving the request my node js server is throwing some error like this which i cannot Understand, After few hours of googling and searching for other option i am still clueless to solve the issue.

Here is the issue:

POST /upload_image 500 1537.367 ms - 2057 Error: Unexpected field at makeError (/home/jkrishna/Documents/ProjectX/node_modules/multer/lib/make-error.js:12:13) at wrappedFileFilter (/home/jkrishna/Documents/ProjectX/node_modules/multer/index.js:39:19) at Busboy.<anonymous> (/home/jkrishna/Documents/ProjectX/node_modules/multer/lib/make-middleware.js:112:7) at Busboy.EventEmitter.emit (events.js:106:17) at Busboy.emit (/home/jkrishna/Documents/ProjectX/node_modules/multer/node_modules/busboy/lib/main.js:31:35) at PartStream.<anonymous> (/home/jkrishna/Documents/ProjectX/node_modules/multer/node_modules/busboy/lib/types/multipart.js:213:13) at PartStream.EventEmitter.emit (events.js:95:17) at HeaderParser.<anonymous> (/home/jkrishna/Documents/ProjectX/node_modules/multer/node_modules/busboy/node_modules/dicer/lib/Dicer.js:51:16) at HeaderParser.EventEmitter.emit (events.js:95:17) at HeaderParser._finish (/home/jkrishna/Documents/ProjectX/node_modules/multer/node_modules/busboy/node_modules/dicer/lib/HeaderParser.js:68:8) at SBMH.<anonymous> (/home/jkrishna/Documents/ProjectX/node_modules/multer/node_modules/busboy/node_modules/dicer/lib/HeaderParser.js:40:12) at SBMH.EventEmitter.emit (events.js:95:17) at SBMH._sbmh_feed (/home/jkrishna/Documents/ProjectX/node_modules/multer/node_modules/busboy/node_modules/dicer/node_modules/streamsearch/lib/sbmh.js:95:16) at SBMH.push (/home/jkrishna/Documents/ProjectX/node_modules/multer/node_modules/busboy/node_modules/dicer/node_modules/streamsearch/lib/sbmh.js:56:14) at HeaderParser.push (/home/jkrishna/Documents/ProjectX/node_modules/multer/node_modules/busboy/node_modules/dicer/lib/HeaderParser.js:46:19) at Dicer._oninfo (/home/jkrishna/Documents/ProjectX/node_modules/multer/node_modules/busboy/node_modules/dicer/lib/Dicer.js:197:25)

最满意答案

问题是你已经配置了multer来查找字段名称为'file' ,但是在你的Android代码中你发送了一个名为'image'的字段。 改变其中一个,它应该工作。

The problem is that you've configured multer to look for a file whose field name is 'file', but in your Android code you're sending a field named 'image'. Change one or the other and it should work.

更多推荐

js,post,request,请求,home,电脑培训,计算机培训,IT培训"/> <meta name="descr

本文发布于:2023-07-22 19:20:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1222709.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:字段   抛出   意外   错误   方法

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!