由于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模块的更多相关文章

  1. NodeJs -- URL 模块.

    1. url.parse(网址): 将字符串 解析成对象.  1-1) 一个参数 : 或者  参数1, false(默认), false(默认) var url = require('url'); c ...

  2. nodejs之url模块

    鄙人初步学习nodejs,目前在读<nodejs入门>这一本书,书很小,但是让我知道了如何用nodejs创建一个简单的小项目.例如如何创建一个服务器啦,例如http.createServe ...

  3. nodejs学习笔记二(get请求、post请求、 querystring模块,url模块)

    请求数据 前台:form.ajax.jsonp 后台:接受请求并返回响应数据     前台<= http协议 =>后台   常用的请求的方式: 1.GET           数据在url ...

  4. 引用nodejs的url模块实现url路由功能

    我们在本地创建服务器之后需要写不同的后缀名来访问同一个站点的不同页面,如果不实现路由功能.则每次访问localhost:3000 不论后面写什么  比如localhost:3000/index.loc ...

  5. nodejs笔记之路由及util和url模块

    路由是URL到函数的映射:对于最简单的静态资源服务器,可以认为,所有URL的映射函数就是一个文件读取操作.对于动态资源,映射函数可能是一个数据库读取操作,也可能是进行一些数据的处理,等等. 如: /u ...

  6. NodeJS 笔记 URL模块

    url模块 ,包含分析和解析 URL 的工具. var url = require('url'); url.parse(urlStr[, parseQueryString][, slashesDeno ...

  7. nodejs入门API之url模块+querystring模块

    关于URL的一些基础内容 URL模块的API解析 URL的参数URLSearchParams类 querystring模块 一.关于URL的一些基础内容 1.1 定义: 在WWW上,每一信息资源都有统 ...

  8. NodeJS http 模块

    #4 NodeJS http 模块 工作目录 server.js var http = require('http'); var fs = require('fs'); var path = requ ...

  9. NodeJS Web模块

    NodeJS Web模块 本文介绍nodeJS的http模块的基本用法,实现简单服务器和客户端 经典Web架构 Client:客户端一般指浏览器,通过HTTP协议向服务器发送请求(request) S ...

  10. node(03)--利用 HTTP 模块 URl 模块 PATH 模块 FS 模块创建一个 WEB 服务器

    Web 服务器一般指网站服务器,是指驻留于因特网上某种类型计算机的程序,可以向浏览器等 Web 客户端提供文档,也可以放置网站文件,让全世界浏览:可以放置数据文件,让全世界下载.目前最主流的三个 We ...

随机推荐

  1. try里Response.end()问题

    问题 在xxx.aspx.cs中处理异步请求,大致代码如下: 但会发现始终会进catch. 原因 Response.End()会引发ThreadAbortException. 解决方案 使用HttpC ...

  2. 51nod 1405 树的距离之和(dfs)

    http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1405 题意: 思路: 先求出所有点到根节点的距离,需要维护每棵子树的大小 ...

  3. [从零开始搭网站七]CentOS上安装Mysql

    点击下面连接查看从零开始搭网站全系列 从零开始搭网站 通过前面6章,我们买好了服务器,配置了服务器连接,服务器上配置了JDK和Tomcat,准备了域名(这个我没教,自己去阿里/百度/腾讯买,买东西我相 ...

  4. MongoDB数据库的基本操作

    非关系型数据库(json数据库) npm install mongoose --save 启动数据酷: mongod --config /usr/local/etc/mongod.conf 这里可以将 ...

  5. 【二】jquery之基础概念与jquery对象与dom对象的区别及混合使用

    一:jquery基本概念 1.jquery是一个javascript框架,它是一个轻量级的js库 2.当下流行的js库有: jquery MooTools Prototype 3.$(ducoment ...

  6. 【三十二】thinkphp之连接数据库、实例化模型

    1.连接数据库 Thinlphp内置了抽象数据库访问层,把不同的数据操作封装起来.我们只需要调用公共的DB类进行操作即可.DB类会自动调用相应的数据库驱动来处理. 在应用目录/common/conf/ ...

  7. java GUI 返回图片源码

    返回图片源码,重开一个类粘贴即可 package cn.littlepage.game; import java.awt.Image; import java.awt.image.BufferedIm ...

  8. Reversion Count

    字符串基础用法题,包含有大数减法大数除法模板,不难理解,代码如下: #include<stdio.h> #include<string.h> #include<strin ...

  9. django自定义Admin actions

    通常情况下,admin的工作模式是“选中目标,然后修改目标”,但在同时修改大量目标的时候,这种模式就变得重复.繁琐. 为此,admin提供了自定义功能函数actions的手段,可以批量对数据进行修改. ...

  10. CoordinatorLayout实现的效果(标题栏效果)

    一.效果 CoordinatorLayouy是一个能够协调子布局的容器布局. 使用引入: compile 'com.android.support:design:24.1.1' 常见的使用方法如下:1 ...