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);