
表單處理
|
95
});
});
app.post('/contest/vacation-photo/:year/:month', function(req, res){
var form = new formidable.IncomingForm();
form.parse(req, function(err, fields, files){
if(err) return res.redirect(303, '/error');
console.log('received fields:');
console.log(fields);
console.log('received files:');
console.log(files);
res.redirect(303, '/thank-you');
});
});
(年份與月份會被指定為
路由參數
,第十四章將會學習這個部分)。繼續執行它,並查
看主控台的記錄。你會看到,你的表單欄位如你預期的過來了:它是一個物件,裡面有
對應至你的欄位名稱的特性。
files
物件含有更多資料,但它比較簡單。對於每一個被
上傳的檔案,你會看到裡面有大小的特性、上傳的路徑(通常是一個在暫時性目錄中的
隨機名稱),及使用者上傳的原始檔案名稱(基於安全與隱私的考量,只有檔案名稱,
沒有全部的路徑)。
現在你可以任意地處理這個檔案,你可以將它存在資料庫、複製到更持久的地方,或上
傳到雲端式檔案儲存系統。記得,如果你依賴在地存儲來儲存檔案,你的應用程式的大
小就不會很理想,因此就不適合雲端式託管。我們會在第十三章回來討論這個範例。 ...