- ExpressJS 教程
- ExpressJS - 首頁
- ExpressJS - 概述
- ExpressJS - 環境配置
- ExpressJS - Hello World
- ExpressJS - 路由
- ExpressJS - HTTP 方法
- ExpressJS - URL 構建
- ExpressJS - 中介軟體
- ExpressJS - 模板引擎
- ExpressJS - 靜態檔案
- ExpressJS - 表單資料
- ExpressJS - 資料庫
- ExpressJS - Cookie
- ExpressJS - Session
- ExpressJS - 身份驗證
- ExpressJS - RESTful API
- ExpressJS - 腳手架
- ExpressJS - 錯誤處理
- ExpressJS - 除錯
- ExpressJS - 最佳實踐
- ExpressJS - 資源
- ExpressJS 有用資源
- ExpressJS - 快速指南
- ExpressJS - 有用資源
- ExpressJS - 討論
ExpressJS - 表單資料
表單是網頁不可或缺的一部分。幾乎每個我們訪問的網站都提供表單,用於提交或獲取資訊。要開始使用表單,我們首先需要安裝`body-parser`(用於解析 JSON 和 url-encoded 資料)和 `multer`(用於解析 multipart/form-data)中介軟體。
要安裝`body-parser`和`multer`,請開啟終端並使用以下命令:
npm install --save body-parser multer
將你的`index.js`檔案內容替換為以下程式碼:
var express = require('express');
var bodyParser = require('body-parser');
var multer = require('multer');
var upload = multer();
var app = express();
app.get('/', function(req, res){
res.render('form');
});
app.set('view engine', 'pug');
app.set('views', './views');
// for parsing application/json
app.use(bodyParser.json());
// for parsing application/xwww-
app.use(bodyParser.urlencoded({ extended: true }));
//form-urlencoded
// for parsing multipart/form-data
app.use(upload.array());
app.use(express.static('public'));
app.post('/', function(req, res){
console.log(req.body);
res.send("recieved your request!");
});
app.listen(3000);
匯入`body-parser`和`multer`後,我們將使用`body-parser`解析 json 和 x-www-form-urlencoded 頭請求,而使用`multer`解析 multipart/form-data。
讓我們建立一個 HTML 表單來測試一下。建立一個名為`form.pug`的新檢視,內容如下:
html
html
head
title Form Tester
body
form(action = "/", method = "POST")
div
label(for = "say") Say:
input(name = "say" value = "Hi")
br
div
label(for = "to") To:
input(name = "to" value = "Express forms")
br
button(type = "submit") Send my greetings
使用以下命令執行你的伺服器。
nodemon index.js
現在訪問 localhost:3000/,隨意填寫表單並提交。將顯示以下響應:
檢視你的控制檯;它將顯示你的請求主體作為 JavaScript 物件,如下面的截圖所示:
`req.body`物件包含你已解析的請求主體。要使用該物件中的欄位,只需像使用普通 JS 物件一樣使用它們。
這是最推薦的傳送請求的方法。還有許多其他方法,但這裡不相關,因為我們的 Express 應用程式將以相同的方式處理所有這些請求。要了解更多關於不同傳送請求的方法,請檢視此頁面。
廣告
