express 获取 request 参数的三种方式
官网介绍 express 获取参数有三种方法
- Checks route params (req.params), ex: /user/:id
- Checks query string params (req.query), ex: ?id=12
- Checks urlencoded body params (req.body), ex: id=
说明
rest风格的请求:http://127.0.0.1:3000/index/123
要获取“123”的值,使用 req.params 得到
get 方式的请求:http://127.0.0.1:3000/index?id=123
要获取“123”的值,使用 req.query.id 得到
post 方式的请求:http://127.0.0.1:3000/index (该请求中包含了id=123的值)
要获取“123”的值,使用req.body.id
示例
如下一个test.html代码
1<form action="/index" method="get">
2 <input type="text" name="login_name"/>
3 <input type="submit" value="Sign In" />
4</form>
在nodeJs中我们要自定义HTTP,因此创建index.js
1var app = require('express').createServer();
2
3app.get('/:key', function(req, res){
4 console.log(req.params.key); // 输出index
5 console.log(req.query.login_name); // 输出表单get提交的login_name
6 res.send('great you are right for get method!'); // 显示页面文字信息
7});
8
9app.post('/:key', function(req, res){
10 console.log(req.params.key); // 输出index
11 console.log(req.body.login_name); // 输出表单post提交的login_name
12 res.send('great you are right for post method!'); // 显示页面文字信息
13});
14
15app.listen(3000);
之后运行node index.js就可以看到本效果。
当然前提是你要先访问test.html,至于如何通过express访问一个html文件我就不详细描述了,可以参考如下代码:
1global.fs=require('fs');
2var realpath = VIEW + "test.html";
3var file = fs.readFileSync(realpath);
4res.end(file);
评论