2012-12-23 11 views
8

मैं अपने node.js सर्वर पर एक पीएनजी अपलोड करने का प्रयास करता हूं, लेकिन हर बार req.files.avatar कहा जाता है, एक त्रुटि प्रकट होती है और कहती है TypeError: Cannot read property 'avatar' of undefinedexpress.js में, req.files

+0

ओह, यह सच है, क्षमा करें – MrMangado

+0

क्लाइंट पक्ष पर फ़ाइल अपलोड करने वाला कोड कैसा दिखता है? – JohnnyHK

+0

क्या आप बॉडी पार्सर को मिडलवेयर के रूप में उपयोग करते हैं? –

उत्तर

17

समस्या यह थी कि मैंने फॉर्म में enctype="multipart/form-data" नहीं लिखा है। यही कारण है कि req.files अपरिभाषित था।

+6

वास्तव में नहीं, मेरे पास enctype = "multipart/form-data" है लेकिन एक ही त्रुटि मिली – ngakak

16

मुझे लगता है कि आपको से पहले अपने शरीर पार्सर को एप.उटर या स्टेटिक मिडलवेयर का उपयोग करने के लिए कोई निर्देश शामिल करना होगा। कुछ परीक्षण और त्रुटि के बाद यह वह आदेश है जो मेरे लिए काम करता है।

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

संबंधित मुद्दे