강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

Ko Yun Hyuk님의 프로필 이미지
Ko Yun Hyuk

작성한 질문수

[리뉴얼] React로 NodeBird SNS 만들기

카카오톡 공유하기 & 강좌 마무리

key: 'image'와 router.post('/image) 관련 질문있습니다.

작성

·

119

0

key: 'image'와 routes/post.js에서
router.post('./images', upload.array('image'))가
일치해야 그대로 받을 수가 있다고 하셨는데
 
PostForm.js에서 onChangeImages 함수에 매개변수로 e를
받아서 e.target.files를 console 찍어보면 FileList가
나옵니다. 여기서 일치한다는게 뭔지 이해가 안되는데...
 
key: image는 어디에 있고 images는 단수에서 복수가 되는건가요?
 
조금 이해가 안되서 그러는데 간략하게 설명해주실수 있나요?
 
// components/PostForm.js
const onClickImageUpload = useCallback(() => {
imageInput.current.click();
}, [imageInput.current]);

const onChangeImages = useCallback((e) => {
console.log('images', e.target.files); // 배열X, 유사배열
const imageFormData = new FormData(); // 멀티파트 형식으로 서버에 보낼수 있다
[].forEach.call(e.target.files, (f) => {
imageFormData.append('image', f); // key: 'image', value(값): f
});
dispatch({
type: UPLOAD_IMAGES_REQUEST,
data: imageFormData,
});
}, []);
 
// routes/post.js
router.post('/images', isLoggedIn, upload.array('image'), (req, res, next) => {
console.log(req.files); // 업로드가 어떻게 됬는지 정보들이 담겨있음
res.json(req.files.map((v) => v.location)); // location 자체에 주소가 담겨있음, PostFrom에 image src에 그대로 전달(backURL 필요 X)
}); // POST /post/images, // upload.array(), upload.single(), upload.none()

답변 1

1

제로초(조현영)님의 프로필 이미지
제로초(조현영)
지식공유자

formData.append(키, 밸류) 입니다.

upload.single(키), upload.array(키)입니다.

여기서 두 개의 키가 일치해야 합니다.

Ko Yun Hyuk님의 프로필 이미지
Ko Yun Hyuk
질문자

답변 감사합니다

Ko Yun Hyuk님의 프로필 이미지
Ko Yun Hyuk

작성한 질문수

질문하기