【发布时间】:2012-12-10 10:38:15
【问题描述】:
我尝试将 png 上传到我的 node.js 服务器,但每次调用 req.files.avatar 时,都会出现错误并显示 TypeError: Cannot read property 'avatar' of undefined。
【问题讨论】:
-
客户端上传文件的代码是什么样的?
-
你使用bodyParser作为中间件吗?
我尝试将 png 上传到我的 node.js 服务器,但每次调用 req.files.avatar 时,都会出现错误并显示 TypeError: Cannot read property 'avatar' of undefined。
【问题讨论】:
问题是我没有在表格中写enctype="multipart/form-data"。这就是 req.files 未定义的原因。
【讨论】:
另外,我认为您必须在 任何使用 app.router 或静态中间件的说明之前包含您的 bodyParser。经过反复试验,这是适合我的顺序。
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'));
});
【讨论】: