express獲取參數有三種方法:
- req.query 適合 http://localhost:3000/form?num=8888
- req.body 適合http://localhost:3000/form,然后Post一個num為tinyphp
- req.params 適合獲取form后的num:http://localhost:3000/form/num
一、GET
app.js
var express = require('express'); var app = express(); app.use(express.static('public')); //獲取數據 app.get('/form', function(req, res) { var num = req.query.num; res.send("你獲取的get數據為:" + num); }); //設置監聽端口 app.listen(3000);
public/test.html
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <script src="http://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script> </head> <body> <div id="box"></div> <form action="/form" method="get"> <input type="text" name="num" value="8888"> <input type="submit" value="提交"> </form> </body> </html>
二、POST
解析post數據需要用到body-parser
npm body-parser --save
app.js
var express = require('express'); var app = express(); //引入body-parser var bodyParser = require('body-parser'); app.use(express.static('public')); //需要use的 app.use(bodyParser.json()); // for parsing application/json app.use(bodyParser.urlencoded({ extended: true })); // for parsing application/x-www-form-urlencoded //獲取數據 app.post('/form', function(req, res) { var num = req.body.num; res.send("你獲取的post數據為:" + num); }); //設置監聽端口 app.listen(3000);
public/test.html
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <script src="http://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script> </head> <body> <div id="box"></div> <form action="/form" method="post"> <input type="text" name="num" value="tinyphp"> <input type="submit" value="提交"> </form> </body> </html>
三、獲取路徑
app.js
var express = require('express'); var app = express(); //獲取數據 app.get('/form/:num', function(req, res) { var num = req.params.num; res.send("你獲取到form/后的參數:" + num); }); //設置監聽端口 app.listen(3000);