Nodejs--url模块
由于GET请求直接被嵌入在路径中,URL是完整的请求路径,包括了?后面的部分,因此你可以手动解析后面的内容作为GET请求的参数。
url 模块中的 parse 函数可以用于解析url中的参数。
url.parse(urlStr, [parseQueryString], [slashesDenoteHost])
参数使用说明如下:
urlStr - 需要接收的url字符串。
parseQueryString - 为true时将使用查询模块分析查询字符串,默认为false。
shashesDenoteHost
-默认为false,//foo/bar 形式的字符串将被解释成 { pathname: ‘//foo/bar' }
-如果设置成true,//foo/bar 形式的字符串将被解释成 { host: ‘foo', pathname: ‘/bar' }
urlcontent.js
var http = require('http');
var url = require('url');
var util = require('util');
http.createServer(function (req, res) {
res.writeHead(200, { 'Content-Type': 'text/plain; charset=utf-8' });
res.write('url:'+req.url+'\n\n');
res.write(util.inspect(url.parse(req.url, true))+'\n\n');
var params = url.parse(req.url, true).query;
res.write("name:" + params.name + '\n');
res.write("age:" + params.age + '\n');
var pathname = url.parse(req.url, true).pathname;
res.write('pathname:' + pathname + '\n');
var path = url.parse(req.url, true).path;
res.write('path:' + path);
res.end();
}).listen(3000);
我们在浏览器中输入以下地址:localhost:3000/user?name=dragon&age=18
显示结果如下:

下面我们新建一个form表单,再来模拟一下。
index.html
<html>
<head>
<title>test</title>
</head>
<body>
<form action="http://localhost:3000" method="GET">
<table border="0">
<tr>
<td>username:</td>
<td><input type="text" name="username"><br/></td>
</tr>
<tr>
<td>password:</td>
<td><input type="text" name="password"><br/></td>
</tr>
<tr>
<td align="center" colspan="2"><input type="submit" name="" value="提交"></td>
</tr>
</table>
</form>
</body>
</html>
server.js
var http = require("http");
var url = require("url");
var server = http.createServer(function (req, res) {
var queryObj = url.parse(req.url, true).query;
var username = queryObj.username;
var password = queryObj.password;
res.writeHead(200, { 'Content-Type': 'text/plain; charset=utf-8' });
res.write('server received form request:\n\n');
res.write('username:'+username+'\n\n'+'password:'+password);
res.end();
});
server.listen(3000);
运行server.js,然后打开index.html


Nodejs--url模块的更多相关文章
- NodeJs -- URL 模块.
1. url.parse(网址): 将字符串 解析成对象. 1-1) 一个参数 : 或者 参数1, false(默认), false(默认) var url = require('url'); c ...
- nodejs之url模块
鄙人初步学习nodejs,目前在读<nodejs入门>这一本书,书很小,但是让我知道了如何用nodejs创建一个简单的小项目.例如如何创建一个服务器啦,例如http.createServe ...
- nodejs学习笔记二(get请求、post请求、 querystring模块,url模块)
请求数据 前台:form.ajax.jsonp 后台:接受请求并返回响应数据 前台<= http协议 =>后台 常用的请求的方式: 1.GET 数据在url ...
- 引用nodejs的url模块实现url路由功能
我们在本地创建服务器之后需要写不同的后缀名来访问同一个站点的不同页面,如果不实现路由功能.则每次访问localhost:3000 不论后面写什么 比如localhost:3000/index.loc ...
- nodejs笔记之路由及util和url模块
路由是URL到函数的映射:对于最简单的静态资源服务器,可以认为,所有URL的映射函数就是一个文件读取操作.对于动态资源,映射函数可能是一个数据库读取操作,也可能是进行一些数据的处理,等等. 如: /u ...
- NodeJS 笔记 URL模块
url模块 ,包含分析和解析 URL 的工具. var url = require('url'); url.parse(urlStr[, parseQueryString][, slashesDeno ...
- nodejs入门API之url模块+querystring模块
关于URL的一些基础内容 URL模块的API解析 URL的参数URLSearchParams类 querystring模块 一.关于URL的一些基础内容 1.1 定义: 在WWW上,每一信息资源都有统 ...
- NodeJS http 模块
#4 NodeJS http 模块 工作目录 server.js var http = require('http'); var fs = require('fs'); var path = requ ...
- NodeJS Web模块
NodeJS Web模块 本文介绍nodeJS的http模块的基本用法,实现简单服务器和客户端 经典Web架构 Client:客户端一般指浏览器,通过HTTP协议向服务器发送请求(request) S ...
- node(03)--利用 HTTP 模块 URl 模块 PATH 模块 FS 模块创建一个 WEB 服务器
Web 服务器一般指网站服务器,是指驻留于因特网上某种类型计算机的程序,可以向浏览器等 Web 客户端提供文档,也可以放置网站文件,让全世界浏览:可以放置数据文件,让全世界下载.目前最主流的三个 We ...
随机推荐
- js实现类型jq的dom加载完成
有时候我们只想在 dom 加载完成后运行 js ,而不是等所有图片加载完成.所以不需要 onload , onload 会加载图片等其他媒体.很消耗时间. 原:http://blog.csdn.net ...
- 【译】第19节---数据注解-NotMapped
原文:http://www.entityframeworktutorial.net/code-first/notmapped-dataannotations-attribute-in-code-fir ...
- PHP中SESSION自定义会话管理器
<?php class CustomSession implements SessionHandlerInterface{ private $link; private $lifetime; p ...
- 什么是可哈希的(hashable)
如果一个对象在自己的生命周期中有一哈希值(hash value)是不可改变的,那么它就是可哈希的(hashable)的,因为这些数据结构内置了哈希值,每个可哈希的对象都内置了__hash__方法,所以 ...
- Git 基础 - 打标签
列出现有标签(或者使用git tag -l) $ git tag v0. v1. 如果只对 1.4.2 系列的版本感兴趣 $ git tag -l 'v1.4.2.*' v1. v1. v1. v1. ...
- idea使用教程(1)
引言:本教程主要讲解一下常用的配置安装方法,不包含软件安装,按照以下教程配置后,可以直接用于生产环境. 参考网址:参考了尚硅谷关于idea的使用教学视屏 idea注册码地址:http://idea.l ...
- [JS]给String对象添加方法,使传入的字符串字符之间以空格分开输出
看到一个这样子的面试题: 给String对象添加一个方法,传入一个string类型的参数,然后将string的每一个字符间加空格返回,例如:addSpace("hello world&quo ...
- Anroid 搭建Maven私服(Android Studio)
一.场景 ① 公司中有多个项目,多人开发,开发中的某一模块需要被其他几个项目的模块所依赖,最简单粗暴的方式就是打包成aar或者jar文件逐个拷贝到libs下进行依赖,可是这种方式太过于麻烦,而且需要每 ...
- 《剑指offer》第五十题(字符串中第一个只出现一次的字符)
// 面试题50(一):字符串中第一个只出现一次的字符 // 题目:在字符串中找出第一个只出现一次的字符.如输入"abaccdeff",则输出 // 'b'. #include & ...
- Jmeter - json参数处理
做一个接口测试,之前用的get请求,key-value形式传参. 后来开发改为了post请求,采用了json形式传参.额,之前也做json形式的传参,但是这次遇到了问题,在此写篇博客,方便大家,也方便 ...