HTTP 和 Post request

接收從client傳遞的data

必須要了解http 原理 參考Google

將資料以特定的格式在url之上,讓server去解讀讀取,最常見的是query stringroute parameter

使用post請求 提交資料

Query String

放在url路徑的方法,是最古老傳統的做法!使用方式是在路徑之後接一個符號來分開,然後傳遞字串&來分隔。優點:它很方便,可以直接在browser網誌裡輸入資料,然後快速鏈接等。缺點:因為網址路徑是長度是有限制的,不能使用query string來輸入複雜或太大資料!

http://ombdapi/result?search='harry&haha'
取得資料
req.query:解析後的url中,?search=‘harry', req.query值為{ search: 'harry'}

Route Parameter

路由參數,比較多人使用之一。我們可以使用路由參數來取得資料

假設我在get路由函數設定
app.get(/friend/:name, function(req,res) { ... });
我在網址路徑寫
localhost:3000/friend/decadehew
#1 讀取name資料
req.params.name -> decadehew
了解更多
console.log(req.params); -> { name: 'decadehew' };
因為在request 請求中容納很多請求的東西,其中有一個object包含route parameter全部和對應值 key-value! :name起了佔位符的名字是name 可以通過 參考#1

Post routes

app.post('/addfriend', function(req,res) { ... };
// post data
<form action='/addfriend' method='post'> ... </form>

Use a form to send a post request

form表格裡填好data後,submit to data,將會到 /addfriend url裡執行函數,之後redirect url

Use body parser to get form data

如果我們要取得提交的資料 req.body.newfriend
req.body 解析後在請求body裡,但需要安裝bodyParser(以下解釋參考#2),在請求body裡的值為{ newfriend: 'decadehew' } 

要express讀取post 方法的body資料區域,先安裝body-parser(以下有解釋)

當user 按下submit 提交資料後,browser就會使用post方法,把form裡各個欄位資料將會放置request body裡,送到server端, 形成object!以下:

#2 注意:需要安裝 npm install body-parser — save
var bodyParser = require(‘body-parser’)
app.use(bodyParser.urlencoded({extended: true})); 告訴express將會用bodyParser
Like what you read? Give Decade Hew a round of applause.

From a quick cheer to a standing ovation, clap to show how much you enjoyed this story.