Javascript 发出post请求时出现意外字段错误?
我在发出post请求时遇到意外的字段错误?这是我的节点js代码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
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)
然后问题就解决了。如果您解释了为什么需要这样做,这个答案会更有帮助。因为医生也会这么做