2014-02-19 94 views
1

我要上傳文件這樣的形式(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.... 

OH中,有來自連接模塊的警告方式:

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 

什麼是我錯在這裏做什麼?我從herehere,here跟隨勸告,沒有什麼作品。感謝您的幫助.....

UPDATE: 我剛纔添加記錄器,以我的應用程序與結果,所以它似乎是我得到的請求:

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" 
+1

快遞有一個文件上傳的例子[這裏](https://github.com/visionmedia/express/blob/master/examples/multipart/index.js)根據它,它看起來像你在服務器後端正確做事。嘗試添加app.use(express.logger('dev')'以啓用某些日誌輸出以查看您實際正在接收的內容。 –

+0

只需按照您的建議添加記錄器即可。看起來很好,服務器獲得了POST請求,仍然'未定義' – DennyHiu

+0

請參閱http://stackoverflow.com/questions/19959708/req-files-not-working-node-js-express –

回答

3

我現在看到的...我有

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); 

現在,它的工作就像一個魅力....

+0

謝謝。 – Aito

相關問題