node.js中http模块和url模块的简单介绍


Posted in Javascript onOctober 06, 2017

前言

本文主要给大家介绍了关于node.js中http模块与url模块的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧。

一、http模块的简单介绍

node.js当中的http内置模块可以用于创建http服务器与http客户端。

1、引包

const http = require('http');

2、创建http服务器

var server = http.createServer((req,res)=>{

});

使用http的.createServer()方法可以用于返回一个http服务器实例,用自定义的server变量来接收。当该服务器每次接收到客户端的请求时触发调用其内部的回调函数,客户端每访问一次,都会触发调用一次。该回调函数有两个参数,req和res,顺序不可颠倒,req表示请求request,res表示响应response。

该回调函数内部语句的一定要有res.end(); ,因为如果没有,浏览器会认为一直没有得到服务器的响应,则浏览器一直会处于被挂起的状态,此时浏览器内部有一个超时机制,一旦超时,则会报告错误。
该回调函数当中的常用代码语句有:

设置响应头,res.writeHead(状态码,{});其中HTTP状态码常用的有200(成功返回)、404(找不到该页面,返回错误)等。第二个参数传入一个对象,用于设置响应文本的渲染解析类型。如常用的有对于html代码设置为,res.writeHead(200,{"Content-Type":"text/html;charset=UTF8"}); 。对于css文件的设置为res.writeHead(200,{"Content-Type":"text/css"}); 。对于图片的设置为res.writeHead(200,{"Content-Type":"image/jpg"}); 。对于纯文本的设置为res.writeHead(200,{"Content-Type":"text/plain"});设置返回的内容,res.write('');

3、让该服务器监听特定的端口号

用server这个自定义的变量来表示创建的服务器来监听某个指定的端口号。server.listen(3000,'192.168.155.1');外界客户端可以通过这个ip地址和端口号来访问这个服务器。

node.js中http模块和url模块的简单介绍

此时表示该服务器处于挂起的状态,此时在浏览器当中输入对应的ip地址与端口号即可得到服务端响应的内容。

node.js中http模块和url模块的简单介绍

二、url模块的简单介绍

const http = require('http');
var server = http.createServer((req,res)=>{
 console.log(req.url);
 res.end();
});
server.listen(3000,'192.168.155.1');

使用node命令开启这个服务器时,可以在控制台实时打印出访问的客户端的url地址信息。

node.js中http模块和url模块的简单介绍

由于在通过chrome浏览器的方式在进行访问时,每次访问都会默认附带一次/favicon.ico的请求,在解析客户端真正在浏览器的访问地址时,可以做如下处理:

const http = require('http');
var server = http.createServer((req,res)=>{
 if(req.url == '/favicon.ico'){
  return;
 };
 console.log(req.url);
 res.end();
});
server.listen(3000,'192.168.155.1');

node.js中http模块和url模块的简单介绍

如上图所示,我们通过req.url可以得到用户完整的请求地址,我们可以利用内置的url模块对用户的请求地址进行解析。

1、引包

const url = require('url');

2、常用的是url.parse(req.url)

该方法常用的是把一个完整的url地址分解为一个对象。

const http = require('http');
const url = require('url');
var server = http.createServer((req,res)=>{
 if(req.url == '/favicon.ico'){
  return;
 };
 console.log(url.parse(req.url));
 res.end();
});
server.listen(3000,'192.168.155.1');

node.js中http模块和url模块的简单介绍

其中最常用的是url.parse(req.url).pathname得到一个文件路径的字符串,以/开头,并且不包括查询部分的内容。使用url.parse(req.url).query可以得到一个查询部分的字符串。其中url.parse()方法的第二个参数是true,可以将所有的查询变为对象形式。

console.log(url.parse(req.url,true).query);

node.js中http模块和url模块的简单介绍

通过这种方式可以快速得到客户端通过GET方式向服务器提交的数据。

总结

以上就是这篇文章的全部内容,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对三水点靠木的支持。

Javascript 相关文章推荐
不能再简单的无闪刷新验证码原理很简单
Nov 05 Javascript
ie 调试javascript的工具
Apr 29 Javascript
jquery 弹出层实现代码
Oct 30 Javascript
Jquery原生态实现表格header头随滚动条滚动而滚动
Mar 18 Javascript
Js可拖拽放大的层拖动特效实现方法
Feb 25 Javascript
vue2组件实现懒加载浅析
Mar 29 Javascript
vue-router 权限控制的示例代码
Sep 21 Javascript
vue+iview写个弹框的示例代码
Dec 05 Javascript
微信小程序swiper组件用法实例分析【附源码下载】
Dec 07 Javascript
详解angular部署到iis出现404解决方案
Aug 14 Javascript
vue-cli 默认路由再子路由选中下的选中状态问题及解决代码
Sep 06 Javascript
在layui中layer弹出层点击事件无效的解决方法
Sep 05 Javascript
你应该知道的几类npm依赖包管理详解
Oct 06 #Javascript
vue-cli构建项目使用 less的方法
Oct 04 #Javascript
浅谈Angular2 模块懒加载的方法
Oct 04 #Javascript
浅谈angular2路由预加载策略
Oct 04 #Javascript
浅谈Angular路由复用策略
Oct 04 #Javascript
React-Native之定时器Timer的实现代码
Oct 04 #Javascript
vuejs使用$emit和$on进行组件之间的传值的示例
Oct 04 #Javascript
You might like
法压式咖啡之制作法
2021/03/03 冲泡冲煮
PHP 字符串加密函数(在指定时间内加密还原字符串,超时无法还原)
2010/04/28 PHP
PHP中图片等比缩放的实例
2013/03/24 PHP
PHP把数字转成人民币大写的函数分享
2014/06/30 PHP
php实现的IMEI限制的短信验证码发送类
2015/05/05 PHP
CI框架出现mysql数据库连接资源无法释放的解决方法
2016/05/17 PHP
PHP接口并发测试的方法(推荐)
2016/12/15 PHP
javascript IE中的DOM ready应用技巧
2008/07/23 Javascript
jquery的ajax()函数传值中文乱码解决方法介绍
2012/11/08 Javascript
jquery实现加载等待效果示例
2013/09/25 Javascript
js中settimeout方法加参数的使用实例
2014/02/27 Javascript
JavaScript常用脚本汇总(一)
2015/03/04 Javascript
Bootstrap Metronic完全响应式管理模板学习笔记
2016/07/08 Javascript
vue项目中应用ueditor自定义上传按钮功能
2018/04/27 Javascript
vue使用@scroll监听滚动事件时,@scroll无效问题的解决方法详解
2019/10/15 Javascript
vue 检测用户上传图片宽高的方法
2020/02/06 Javascript
vue实现给div绑定keyup的enter事件
2020/07/31 Javascript
简单使用Python自动生成文章
2014/12/25 Python
利用Python绘制MySQL数据图实现数据可视化
2015/03/30 Python
python中实现精确的浮点数运算详解
2017/11/02 Python
python3文件复制、延迟文件复制任务的实现方法
2019/09/02 Python
解决Python3.8用pip安装turtle-0.0.2出现错误问题
2020/02/11 Python
python3用urllib抓取贴吧邮箱和QQ实例
2020/03/10 Python
Python3实现飞机大战游戏
2020/04/24 Python
Python urlopen()参数代码示例解析
2020/12/10 Python
运动鞋中的劳斯莱斯:索康尼(SAUCONY)
2017/08/09 全球购物
欧铁通票官方在线销售网站:Eurail.com
2017/10/14 全球购物
Zavvi荷兰:英国大型音像制品和图书游戏零售商
2018/03/22 全球购物
年度考核自我鉴定
2013/11/09 职场文书
中专毕业生自我鉴定
2014/02/02 职场文书
面试通知单大全
2015/04/20 职场文书
学生会工作感言
2015/08/07 职场文书
2016党校学习心得体会
2016/01/07 职场文书
《最后一头战象》教学反思
2016/02/16 职场文书
利用python调用摄像头的实例分析
2021/06/07 Python
CSS实现隐藏搜索框功能(动画正反向序列)
2021/07/21 HTML / CSS