使用Express上传文件失败:“无法读取未定义的属性文件”

我想用这样的表单(JADE)上传文件:

form(action="/file-upload", name="upload", method="post", enctype="multipart/form-data") input(type="file", name="theFile") input(type="submit", name="Upload") 

这是我的app.js:

 app.use(express.methodOverride()); app.use(express.multipart()); app.use(express.bodyParser()); 

这就是我处理请求的方式:

 app.post('/file-upload',function(req,res){ console.log('FIRST TEST: ' + JSON.stringify(req.files)); console.log('second TEST: ' +req.files.theFile.name); }); 

这是我的Node.js控制台:

 FIRST TEST: undefined TypeError: Cannot Read Property 'theFile' of undefined....etc.... 

哦,顺便说一下,来自Connect模块的警告:

 connect.limit() will be removed in connect 3.0 connect.multipart() will be removed in connect 3.0 visit https://github.com/senchalabs/connect/wiki/Connect-3.0 for alternatives 

我在这里做错了什么? 我从这里跟随劝告, 在 这里 ,没有任何作品。 感谢帮助…..

更新:我刚刚添加LOGGER到我的应用程序的结果,所以这似乎是我的要求:

 127.0.0.1 - - [Wed, 19 Feb 2014 11:02:11 GMT] "POST /file-upload HTTP/1.1" 500 - "http://localhost:3000/admin/news-add" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.107 Safari/537.36" 

我现在看到…我有

 app.use(express.multipart()); app.use(express.bodyParser()); app.use(express.methodOverride()); 

app.use(app.router); 应该在哪里宣布,如下所示:

 app.use(express.multipart()); app.use(express.bodyParser()); app.use(express.methodOverride()) app.use(app.router); 

现在,它的工作就像一个魅力….