Upload
先下載formidable module,使用npm install formidable指令。
>> node6_1_formidable.js
在else內建立表單,method也是post,action為/upload,也就是submit後會跳到/upload次路徑,使用type='file'會出現選擇檔案的按鈕。在req.url=='/upload'情況下,使用formidable.IncomingForm()取得物件,使用其parse(req, callback)方法即可得到內容。因為會自動上傳到某目錄(C:\users\...),而且在該位置上傳的檔案會自動被命名,所以使用fs.rename來將檔案導引到特定資料夾目錄,並保留原檔案檔名。也就是屆時檔案會儲存到C:/Temp/目錄內。util.inspect()是內建module util的方法,可將物件內容轉為描述字串。
Email
使用nodemailer module,使用npm install nodemailer下載。
>> node6_2_email.js
首先在req.url == '/'頁面建立email表單格式,接著在req.url == '/email'進行回應,一樣使用querystring來取得表單內容資料。email的部分先建立transporter,使用nodemailer.ccreateTransport,此處採用gmail的郵件主機服務,pass使用寄信信箱的密碼。mailOption包含from, to, subject, text(亦可為html)等內容,然後使用transporter.sendMail(mailOptions, callback)方法寄送。<<此程式碼只能使用特定service,且要給定密碼。>>