9

png を node.js サーバーにアップロードしようとしましたが、呼び出されるたびreq.files.avatarにエラーが表示され、TypeError: Cannot read property 'avatar' of undefined.

4

2 に答える 2

19

enctype="multipart/form-data"問題は、フォームに書いていないことでした。そのため、req.files は未定義でした。

于 2012-12-24T11:21:47.370 に答える
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'));
});
于 2013-09-06T22:49:01.200 に答える