MulterError:unexpected field 에러가 발생하는 원인은
multer 미들웨어를 사용할 때
input태그의 name과 multer의 single / fields의 인자가 일치하지 않아서 발생.
<form id="form" action="/upload" method="post" enctype="multipart/form-data">
<input type="file" name="image" />
<input type="text" name="title"/>
<button type="submit">업로드</button>
</form>
app.post('/upload',
upload.single('image'), (req, res) => {
console.log(req.file);
res.send('ok');
});
<form id="form" action="/upload" method="post" enctype="multipart/form-data">
<input type="file" name="many" multiple />
<input type="text" name="title"/>
<button type="submit">업로드</button>
</form>
app.post('/upload',
upload.array('many'), (req, res) => {
console.log(req.file);
res.send('ok');
});
3.여러개의 input태그로 여러 파일을 업로드 하는 경우
<form id="form" action="/upload" method="post" enctype="multipart/form-data">
<input type="file" name="image1" />
<input type="file" name="image2" />
<input type="file" name="image3" />
<input type="text" name="title"/>
<button type="submit">업로드</button>
</form>
app.post('/upload',
upload.fields([{name: 'image1'}, {name: 'image2'}, {name: 'image3'}]), (req, res) => {
console.log(req.file);
res.send('ok');
});
위와 같이 input태그의 name과 미들웨어 내부 single/fields의 인자를 맞춰주면 해결된다.
소중한 정보 감사드립니다!