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

MrM*_*ado 8 upload node.js express

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

MrM*_*ado 17

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

  • 不是真的,我有enctype ="multipart/form-data"但是得到了同样的错误 (6认同)

bra*_*sch 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'));
});
Run Code Online (Sandbox Code Playgroud)

  • 我完全忘了身体解析器,这解决了我的问题.谢谢! (2认同)