Node.js中的HTTP模块与URL模块

 更新时间:2022年07月06日 10:32:44   作者:社会主义接班人  
这篇文章介绍了Node.js中的HTTP模块与URL模块,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

几乎每门编程语言都会包括网络这块,Node.js也不例外。今天主要是熟悉下Node.js中HTTP服务。其实HTTP模块是相当低层次的,它不提供路由、cookie、缓存等,像Web开发中不会直接使用,但还是要熟悉下,这样也方便以后的学习。

统一资源标识符URL

这个是非常常见的,在Node.js中有几种处理。

http://user:pass@host.com:80/resource/path/?query=string#hash

协议://身份认证@主机名.com:端口/路径/搜索/查询#散列

在URL模块中可以URL定义的属性和方法

exports.parse = urlParse;
exports.resolve = urlResolve;
exports.resolveObject = urlResolveObject;
exports.format = urlFormat;

exports.Url = Url;

function Url() {
  this.protocol = null;
  this.slashes = null;
  this.auth = null;
  this.host = null;
  this.port = null;
  this.hostname = null;
  this.hash = null;
  this.search = null;
  this.query = null;
  this.pathname = null;
  this.path = null;
  this.href = null;
}

上面代码可以看到URL模块定义了protocol、slashes等这些属性,还有parse、resolve 等方法.

1、URL字符串转URL对象 parse

/**
 * Created by Administrator on 2016/3/26.
 */
var url=require('url');
var urlStr='http://user:pass@host.com:80/rseource/path?query=string#hash';
//parse(urlStr,[parseQueryString],[slashesDenoteHost])
//parseQueryString 布尔值 true:URL查询字符串部分解析为对象字面量默认false
//slashesDenoteHost 布尔值 true:把格式为//host/path的URL解析为:{host:'host',pathname:'/path'},而不是{pathname:'//host/path'} 默认false
var urlObj=url.parse(urlStr,true,false);
console.log(urlObj);

输出结果:

"C:\Program Files (x86)\JetBrains\WebStorm 11.0.3\bin\runnerw.exe" F:\nodejs\node.exe URL.js
Url {
  protocol: 'http:',
  slashes: true,
  auth: 'user:pass',
  host: 'host.com:80',
  port: '80',
  hostname: 'host.com',
  hash: '#hash',
  search: '?query=string',
  query: { query: 'string' },
  pathname: '/rseource/path',
  path: '/rseource/path?query=string',
  href: 'http://user:pass@host.com:80/rseource/path?query=string#hash' }

Process finished with exit code 0

2.URL重定向resolve

有时候请求的url和实际的物理地址并不一样,这就要进行虚拟地址和物理地址的转换。

var url=require('url');
var originalUrl='http://user:pass@host.com:80/rseource/path?query=string#hash';
var newResource='/another/path?querynew';
console.log(url.resolve(originalUrl,newResource));

输出结果:

"C:\Program Files (x86)\JetBrains\WebStorm 11.0.3\bin\runnerw.exe" F:\nodejs\node.exe URL.js
http://user:pass@host.com:80/another/path?querynew

Process finished with exit code 0

3.处理查询字符串和表单参数

在做web开发中常常需要向服务端get 、post请求,请求的时候可能会带一些参数,需要对参数进行处理.比如:查询字符串转js对象或js对象转字符串。

这里要用到queryString模块的parse()和stringify()函数。

var qString=require('querystring')
//QueryString.parse = QueryString.decode = function(qs, sep, eq, options)
//1.qs 字符串
//2.sep 使用的分隔符 默认&
//3.ep 使用的运算符 默认=
//4.一个具有maxKey属性的对象 能够限制生成的对象可以包含的键的数量默认1000,0则无限制
var  params=qString.parse("name=cuiyanwei&color=red&color=blue");
console.log(params);
//QueryString.stringify = QueryString.encode = function(obj, sep, eq, options)
console.log(qString.stringify(params,"&","="));

输出结果:

"C:\Program Files (x86)\JetBrains\WebStorm 11.0.3\bin\runnerw.exe" F:\nodejs\node.exe URL.js
{ name: 'cuiyanwei', color: [ 'red', 'blue' ] }
name=cuiyanwei&color=red&color=blue

Process finished with exit code 0

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • 总结几道关于Node.js的面试问题

    总结几道关于Node.js的面试问题

    这篇文章主要总结了几道关于Node.js的面试问题,通过这些问题就来判断一个人的Node.js水平是不太严谨的,但是它能让你对面试者在Node.js上的经验如何有个大概的了解。有需要的朋友可以参考借鉴,下面来一起看看吧。
    2017-01-01
  • 如何利用node.js开发一个生成逐帧动画的小工具

    如何利用node.js开发一个生成逐帧动画的小工具

    这篇文章主要给大家介绍了关于如何利用node.js开发一个生成逐帧动画小工具的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用node.js具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-12-12
  • node.js使用免费的阿里云ip查询获取ip所在地【推荐】

    node.js使用免费的阿里云ip查询获取ip所在地【推荐】

    这篇文章主要介绍了node.js使用免费的阿里云ip查询获取ip所在地的相关知识,非常不错,具有一定的参考借鉴价值 ,需要的朋友可以参考下
    2018-09-09
  • 如何利用Node.js做简单的图片爬取

    如何利用Node.js做简单的图片爬取

    这篇文章主要介绍了如何利用Node.js做简单的图片爬取,爬虫的主要目的是收集互联网上公开的一些特定数据,本文介绍用于网络抓取的node.js包,完成一个简单的爬虫案例来爬取网页上图片并下载到本地
    2022-06-06
  • nodejs关于中间件解析

    nodejs关于中间件解析

    这篇文章主要介绍了nodejs关于中间件解析,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-12-12
  • Node.js数据流Stream之Duplex流和Transform流用法

    Node.js数据流Stream之Duplex流和Transform流用法

    这篇文章介绍了Node.js数据流Stream之Duplex流和Transform流的用法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-07-07
  • node实现简单的反向代理服务器

    node实现简单的反向代理服务器

    本篇文章主要介绍了node实现简单的反向代理,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-07-07
  • Node.js中使用jQuery的做法

    Node.js中使用jQuery的做法

    在Node.js中使用jQuery的做法,需要先安装jquery,npm install jquery ,安装后的版本是 3.1.0,本文介绍的非常详细,具有参考借鉴价值,感兴趣的朋友一起看下吧
    2016-08-08
  • Node.js中的child_process模块详解

    Node.js中的child_process模块详解

    这篇文章主要给大家介绍了关于Node.js中child_process模块的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2018-06-06
  • Nodejs中调用系统命令、Shell脚本和Python脚本的方法和实例

    Nodejs中调用系统命令、Shell脚本和Python脚本的方法和实例

    这篇文章主要介绍了Nodejs中调用系统命令、Shell脚本和Python脚本的方法和实例,本文给出了利用子进程调用系统命令、执行系统命令、调用传参数的shell脚本、调用python脚本的例子,需要的朋友可以参考下
    2015-01-01

最新评论