내 node.js 서버에 PNG를 업로드하려고 시도하지만, req.files.avatar
이 호출 될 때마다 오류가 나타나고 TypeError: Cannot read property 'avatar' of undefined
라고 표시됩니다.express.js에서 req.files가 정의되지 않았습니다.
8
A
답변
17
문제점은 enctype="multipart/form-data"
을 양식에 쓰지 않았기 때문입니다. 이것이 req.files가 정의되지 않은 이유입니다.
+6
정말, 내가 enctype = "multipart/양식 데이터"가 있지만 동일한 오류가 발생했습니다 – ngakak
16
또한 앞에 bodyParser 을 포함시켜야 app.router 또는 정적 미들웨어를 사용해야한다고 생각합니다. 몇 번의 시행 착오 후에 이것이 나를 위해 일하는 순서입니다.
app.configure(function(){
app.set('port', process.env.port || 3000);
app.set('views', __dirname + '/app/server/views');
app.set('view engine', 'jade');
app.locals.pretty = true;
app.use(express.favicon());
app.use(express.bodyParser({ keepExtensions: true, uploadDir: __dirname + '/app/uploads' }));
app.use(express.methodOverride());
app.use(express.cookieParser());
app.use(express.session({ secret: 'super-duper-secret-secret' }));
app.use(app.router);
app.use(require('stylus').middleware({ src: __dirname + '/app/public' }));
app.use(express.static(__dirname + '/app/public'));
});
+2
전 완전히 바디 파서를 깜빡하고 내 문제를 해결합니다. 고마워! – x1a0
관련 문제
- 1. Sails.js req.files가 비어 있고 req.body.image가 정의되지 않았습니다.
- 2. ExpressJS - req.files가 정의되지 않았거나 비어 있습니다.
- 3. " 'WinJS'가 정의되지 않았습니다." "Windows '가 정의되지 않았습니다."
- 4. jQuery가 정의되지 않았습니다. json이 정의되지 않았습니다. 'fn'이 null이거나 객체가 아닙니다.
- 5. AngularJS 오류 - "컨트롤러가 정의되지 않았습니다"또는 "함수가 정의되지 않았습니다"
- 6. PageMethods가 정의되지 않았습니다.
- 7. FB.Connect는 정의되지 않았습니다.
- 8. ContentHandler가 정의되지 않았습니다.
- 9. 'XMLHTTPRequest가 정의되지 않았습니다.'IE6
- 10. ASPxGridview가 정의되지 않았습니다.
- 11. ejs의 부분이 정의되지 않았습니다. '
- 12. IP_RECVDSTADDR가 정의되지 않았습니다.
- 13. Mootools가 정의되지 않았습니다.
- 14. PHP에서 색인이 정의되지 않았습니다.
- 15. $는 jquery에서 정의되지 않았습니다.
- 16. 콜백 함수가 정의되지 않았습니다.
- 17. javascript 함수가 정의되지 않았습니다.
- 18. o XMLHTTPRequest가 정의되지 않았습니다.
- 19. 배열 길이가 정의되지 않았습니다.
- 20. 이벤트가 Firefox에서 정의되지 않았습니다.
- 21. 내 window.dialogArguments가 정의되지 않았습니다.
- 22. FB가 정의되지 않았습니다.
- 23. Webform_SaveScrollPositionSubmit이 정의되지 않았습니다.
- 24. jQuery 객체가 정의되지 않았습니다.
- 25. ReferenceError : JQOTE2_TMPL_EXEC_ERROR가 정의되지 않았습니다.
- 26. isEmpty가 정의되지 않았습니다 - 오류
- 27. Ajax가 remote_form_for에 정의되지 않았습니다.
- 28. Getline 오류가 정의되지 않았습니다.
- 29. Liferay.PortletURL이 정의되지 않았습니다.
- 30. AngularJS에서 공장이 정의되지 않았습니다
아, 사실입니다. 죄송합니다. – MrMangado
클라이언트 측에서 파일을 업로드하는 코드는 어떻게 생겼습니까? – JohnnyHK
bodyParser를 미들웨어로 사용합니까? –