在express.js中,req.files是未定义的

时间:2012-12-23 19:25:29

标签: node.js upload express

我尝试将png上传到我的node.js服务器,但每次调用req.files.avatar时,都会显示错误并显示TypeError: Cannot read property 'avatar' of undefined

2 个答案:

答案 0 :(得分:17)

问题是我没有在表单中写enctype="multipart/form-data"。这就是req.files未定义的原因。

答案 1 :(得分:16)

此外,我认为你必须在使用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'));
});