Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/477.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 发出post请求时出现意外字段错误?_Javascript_Node.js_Postman_Multer - Fatal编程技术网

Javascript 发出post请求时出现意外字段错误?

Javascript 发出post请求时出现意外字段错误?,javascript,node.js,postman,multer,Javascript,Node.js,Postman,Multer,我在发出post请求时遇到意外的字段错误?这是我的节点js代码 var express = require('express'); var multer = require('multer'); var bodyParser = require('body-parser'); var cors = require('cors'); var app = express(); var PORT = process.env.PORT || 3000; var upload = multer({ des

我在发出post请求时遇到意外的字段错误?这是我的节点js代码

var express = require('express');
var multer = require('multer');
var bodyParser = require('body-parser');
var cors = require('cors');
var app = express();
var PORT = process.env.PORT || 3000;
var upload = multer({ dest: 'uploads/' })


// use of body parser
app.use(bodyParser.urlencoded({
    extended: true
}));

app.use(bodyParser.json());
app.use(cors());




app.post('/upload',upload.single('avatar'), function (req, res,next) {
console.log(req.file);
console.log('hello');
res.send({data:'sss'})
});


app.listen(PORT, () => {
    console.log(`App is listening to ${PORT}`);
})
我用这个插件上传文件 当我通过
postman
点击我的服务时,我发现了下面的错误

**App is listening to 3000
Error: Unexpected field
    at makeError (C:\Users\B0207296\WebstormProjects\uploadFile\node_modules\multer\lib\make-error.js:12:13)
    at wrappedFileFilter (C:\Users\B0207296\WebstormProjects\uploadFile\node_modules\multer\index.js:40:19)
    at Busboy.<anonymous> (C:\Users\B0207296\WebstormProjects\uploadFile\node_modules\multer\lib\make-middleware.js:114:7)
    at emitMany (events.js:147:13)
    at Busboy.emit (events.js:224:7)
    at Busboy.emit (C:\Users\B0207296\WebstormProjects\uploadFile\node_modules\busboy\lib\main.js:38:33)
    at PartStream.<anonymous> (C:\Users\B0207296\WebstormProjects\uploadFile\node_modules\busboy\lib\types\multipart.js:213:13)
    at emitOne (events.js:116:13)
    at PartStream.emit (events.js:211:7)
    at HeaderParser.<anonymous> (C:\Users\B0207296\WebstormProjects\uploadFile\node_modules\dicer\lib\Dicer.js:51:16)**
**应用程序正在收听3000
错误:意外字段
在makeError(C:\Users\B0207296\WebstormProjects\uploadFile\node\u modules\multer\lib\make error.js:12:13)
在wrappedFileFilter(C:\Users\B0207296\WebstormProjects\uploadFile\node\u modules\multer\index.js:40:19)

在营业员处。

在邮递员中,将钥匙重命名为
avatar

编辑
multer
希望上载文件的
名称
avatar
,而不是
文件测试

我的问题是
roter
文件中的错误

我有:

router.post(
   "/addArticle",
   upload.single("image"),
   upload.array("rowPics"),
   (req, res, next)=>{...some code}
)
我的目标是上传一个名为
image
的文件,以及多个名为
rowPics
的数组文件。但是不能同时使用
upload.single
upload.array
。为了上传多个不同名称的文件,我必须更改代码,如下所示:

router.post(
   "/addArticle", 
   upload.fields([
      {name: "image", maxCount: 1},
      {name: "rowPics"}
   ]),
   (req, res, next)=>{...some code}
)
let image = req.files.image[0].path
let rowPics = req.files.rowPics.map(el=>el.path)
…some code
部分,我分析了我的输入,如下所示:

router.post(
   "/addArticle", 
   upload.fields([
      {name: "image", maxCount: 1},
      {name: "rowPics"}
   ]),
   (req, res, next)=>{...some code}
)
let image = req.files.image[0].path
let rowPics = req.files.rowPics.map(el=>el.path)

然后问题就解决了。

如果您解释了为什么需要这样做,这个答案会更有帮助。因为医生也会这么做