Node.js express获取参数有三种方法
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=
1、例如:127.0.0.1:3000/:index,这种情况下,我们为了得到index,我们可以通过使用req.params得到,通过这种方法我们就可以很好的处理Node中的路由处理问题,同时利用这点可以非常方便的实现MVC模式;
2、例如:127.0.0.1:3000/index?id=12,这种情况下,这种方式是获取客户端get方式传递过来的值,通过使用req.query.id就可以获得,类似于PHP的get方法;
3、例如:127.0.0.1:300/index,然后post了一个id=2的值,这种方式是获取客户端post过来的数据,可以通过req.body.id获取,类似于PHP的post方法;
下面举例介绍下这三个方法:
如下一个test.html代码
- <form action="/index" method="get">
- <input type="text" name="login_name"/>
- <input type="submit" value="Sign In" />
- </form>
在nodeJs中我们要自定义HTTP,因此创建index.js
- var app = require('express').createServer();
- app.get('/:key', function(req, res){
- console.log(req.params.key);//输出index
- console.log(req.query.login_name);//输出表单get提交的login_name
- res.send('great you are right for get method!');//显示页面文字信息
- });
- app.post('/:key', function(req, res){
- <pre name="code" class="javascript"> console.log(req.params.key);//输出index
- console.log(req.body.login_name);//输出表单post提交的login_name
- res.send('great you are right for post method!');//显示页面文字信息
});app.listen(3000);
之后运行node index.js就可以看到本效果,当然前提是你要先访问test.html,至于如何通过express访问一个html文件我就不详细描述了,可以参考如下代码:
- global.fs=require('fs');
- var realpath = VIEW + "test.html";
- var file = fs.readFileSync(realpath);
- res.end(file);
【url.format(urlObject)】
url.parse(str)的反向操作,输入一个解析过的 URL 对象,返回格式化过的字符串
urlObject包含了很多字段,比如protocol、slashes、protocol等,且不一定需要全部传,所以有一套解析逻辑
格式化的工作流程如下

href 会被忽略
protocol 无论是否有末尾的 : (冒号),会同样的处理
http, https, ftp, gopher, file 协议会被添加后缀://
mailto, xmpp, aim, sftp, foo, 等协议添加后缀:
slashes 如果协议需要 ://,设置为 true
仅需对之前列出的没有斜杠的协议,比如议 mongodb://localhost:8000/
auth 如果出现将会使用.
hostname 仅在缺少 host 时使用
port 仅在缺少 host 时使用
host 用来替换 hostname 和 port
pathname 无论结尾是否有 / 将会同样处理
search 将会替代 query属性
无论前面是否有 / 将会同样处理
query (对象; 参见 querystring) 如果没有 search,将会使用
hash 无论前面是否有#,都会同样处理


var url = require('url');
var obj = {
protocol: 'http:',
auth: 'user:pass',
host: 'host.com:8080',
hash: '#hash',
query: { author: '小火柴' }
}
//http://user:pass@host.com:8080?author=%E5%B0%8F%E7%81%AB%E6%9F%B4#hash
console.log(url.format(obj));

【url.resolve(from, to)】
url.resolve()方法以一种浏览器解析超链接的方式把一个目标URL解析成相对于一个基础URL,参数如下
from <String> 解析时相对的基本 URL。
to <String> 要解析的超链接 URL。
var url = require('url');
console.log(url.resolve('/one/two/three', 'four')); // '/one/two/four'
console.log(url.resolve('http://example.com/', '/one')); // 'http://example.com/one'
console.log(url.resolve('http://example.com/one', '/two')); // 'http://example.com/two'
Node.js express获取参数有三种方法的更多相关文章
- Node.js Express 获取request原始数据
app.use(bodyParser.json());客户端请求接口时如果指名请求头类型 为Content-Type=application/jsonbodyParser 会自动将 body 里的 j ...
- Node.js Express 框架学习
转载:http://JavaScript.ruanyifeng.com/nodejs/express.html#toc0 感觉很牛的样子,不过觉得对初学者没太大用,里面很多例子用的api都没有详细的说 ...
- Nodejs学习笔记(六)--- Node.js + Express 构建网站预备知识
目录 前言 新建express项目并自定义路由规则 如何提取页面中的公共部分? 如何提交表单并接收参数? GET 方式 POST 方式 如何字符串加密? 如何使用session? 如何使用cookie ...
- body-parser Node.js(Express) HTTP请求体解析中间件
body-parser Node.js(Express) HTTP请求体解析中间件 2016年06月08日 781 声明 在HTTP请求中,POST.PUT和PATCH三种请求方法中包 ...
- Nodejs学习笔记(六)—Node.js + Express 构建网站预备知识
前言 前面经过五篇Node.js的学习,基本可以开始动手构建一个网站应用了,先用这一篇了解一些构建网站的知识! 主要是些基础的东西... 如何去创建路由规则.如何去提交表单并接收表单项的值.如何去给密 ...
- modeJS 深了解(1): Node.js + Express 构建网站预备知识
转载:http://www.cnblogs.com/zhongweiv/p/nodejs_express_webapp1.html 目录 前言 新建express项目并自定义路由规则 如何提取页面中的 ...
- node.js+express+mongoose实现用户增删查改案例
node.js+express+mongodb对用户进行增删查改 一.用到的相关技术 使用 Node.js 的 express 框架搭建web服务 使用 express 中间件 body-parse ...
- Node.js Express框架
Express 介绍 Express是一个最小的,灵活的Node.js Web应用程序框架,它提供了一套强大的功能来开发Web和移动应用程序. 它有助于基于Node Web应用程序的快速开发.下面是一 ...
- Node.js Express+Mongodb 项目实战
Node.js Express+Mongodb 项目实战 这是一个简单的商品管理系统的小项目,包含的功能还算挺全的,项目涵盖了登录.注册,图片上传以及对商品进行增.删.查.改等操作,对于新手来说是个很 ...
随机推荐
- DP爬台阶问题
1. 初级爬台阶 - 求最短步数 LC - 70 一次可以迈1-2个台阶,因此最短步数与前两个台阶有关. Initial state: 第一阶:1步 : 第二阶:1步 deduction functi ...
- springboot打成Jar包后部署至Linux服务器上
下面主要记录一下springboot打包成jar包在Linux服务上部署的步骤: 1.通过WinSCP,将相应的Jar文件,复制到Linux指定目录下,如/home/ 2.打开ssh,进入/home目 ...
- 获取页面定位元素left top
1原生方法: 第一种方法,比较简单,就是直接通过obj.style.left和obj.style.top,但是有局限性,这种获取的方法只能获取到行内样式的left和top的属性值,不能获取到style ...
- tensorFlow(五)深层神经网络
TensorFlow基础见前博客 上实例: MNIST 数据集介绍 MNIST 是一个手写阿拉伯数字的数据集. 其中包含有 60000 个已经标注了的训练集,还有 10000 个用于测试的测试集. 本 ...
- JAVA条件语句:if;switch case
if(布尔表达式) { //如果布尔表达式为true将执行的语句 } 如果布尔表达式为true 执行里面的代码 if...else语句: if(布尔表达式){ //如果布尔表达式的值为true } ...
- Linux下查看CPU型号,内存大小,硬盘空间的命令
1 查看CPU 1.1 查看CPU个数 # cat /proc/cpuinfo | grep "physical id" | uniq | wc -l 2 **uniq命令:删除重 ...
- day 11 函数参数
形参与实参 形参:就是形式参数,在函数定义时,写在括号里面指定的参数就是形式参数 实参:在调用函数时传入的参数就是实参 在调用函数时就会自动的把形参与实参绑定起来,然后调用结束之后,解除绑定关系 位置 ...
- What is the RESTful API ?
REST 是 RepresentationalStateTransfer 的缩写,一般中文译为 “表征状态转移”,Roy Thomas Fielding 在他2000年的PhD论文中发明了这个概念.首 ...
- 面向对象 反射 和item系列和内置函数和__getattr__和__setattr__
反射 反射主要用在网络编程中, python面向对象的反射:通过字符串的形式操作对象相关的属性.python的一切事物都是对象. 反射就是通过字符串的形式,导入模块:通过字符串的形式,去模块寻找指定函 ...
- java 环形链表实现约瑟夫(Joseph)问题
约瑟夫问题又名丢手绢问题.相传著名犹太历史学家 Josephus 利用其规则躲过了一场自杀游戏,而后投降了罗马. 问题: 已知n个人(以编号1,2,3...n分别表示)围坐在一张圆桌周围.* 从编号为 ...