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 相关文章推荐
Mootools 1.2教程 Fx.Morph、Fx选项和Fx事件
Sep 15 Javascript
用js实现table单元格高宽调整,兼容合并单元格(兼容IE6、7、8、FF)实例
Jun 25 Javascript
angularjs实现与服务器交互分享
Jun 24 Javascript
javascript动态创建链接的方法
May 13 Javascript
关于数据与后端进行交流匹配(点亮星星)
Aug 03 Javascript
angularjs 中$apply,$digest,$watch详解
Oct 13 Javascript
浅谈express 中间件机制及实现原理
Aug 31 Javascript
浅析Javascript中双等号(==)隐性转换机制
Oct 27 Javascript
select标签设置默认选中的选项方法
Mar 02 Javascript
vue项目中仿element-ui弹框效果的实例代码
Apr 22 Javascript
three.js 将图片马赛克化的示例代码
Jul 31 Javascript
javascript实现滚轮轮播图片
Dec 13 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
Snoopy类使用小例子
2008/04/15 PHP
JavaScript OOP类与继承
2009/11/15 Javascript
JavaScript打字小游戏代码
2011/12/26 Javascript
一个jquery实现的不错的多行文字图片滚动效果
2014/09/28 Javascript
Internet Explorer 11 浏览器介绍:别叫我IE
2014/09/28 Javascript
jQuery中removeProp()方法用法实例
2015/01/05 Javascript
JS组件中bootstrap multiselect两大组件较量
2016/01/26 Javascript
举例说明JavaScript中的实例对象与原型对象
2016/03/11 Javascript
JavaScript实现时间倒计时跳转(推荐)
2016/06/28 Javascript
javaScript语法总结
2016/11/25 Javascript
解决vue打包css文件中背景图片的路径问题
2018/09/03 Javascript
浅谈Webpack核心模块tapable解析
2018/09/11 Javascript
详解jQuery中的getAll()和cleanData()
2019/04/15 jQuery
JavaScript 浏览器对象模型BOM原理与常见用法实例分析
2019/12/16 Javascript
vue 监听窗口变化对页面部分元素重新渲染操作
2020/07/28 Javascript
Node.js path模块,获取文件后缀名操作
2020/11/07 Javascript
python使用urllib模块和pyquery实现阿里巴巴排名查询
2014/01/16 Python
对python3中pathlib库的Path类的使用详解
2018/10/14 Python
Python离线安装PIL 模块的方法
2019/01/08 Python
pandas 层次化索引的实现方法
2019/07/06 Python
pyenv虚拟环境管理python多版本和软件库的方法
2019/12/26 Python
TensorFlow实现指数衰减学习率的方法
2020/02/05 Python
python 实现简单的计算器(gui界面)
2020/11/11 Python
巧用CSS3 border实现图片遮罩效果代码
2012/04/09 HTML / CSS
孕妇装中的著名品牌:Isabella Oliver(伊莎贝拉·奥利弗)
2016/10/31 全球购物
家乐福巴西网上超市:Carrefour巴西
2016/10/31 全球购物
西班牙三叶草药房:Farmacias Trébol
2019/05/03 全球购物
中兴通讯全球官方网站:ZTE
2020/12/26 全球购物
CLR与IL分别是什么含义
2016/08/23 面试题
卫校毕业生自我鉴定
2013/10/31 职场文书
班级聚会策划书
2014/01/16 职场文书
新教师岗前培训方案
2014/06/05 职场文书
计算机多媒体专业自荐信
2014/07/04 职场文书
“四风”查摆问题自我剖析材料
2014/09/27 职场文书
2015年度信用社工作总结
2015/05/04 职场文书
傅雷家书读书笔记
2015/06/29 职场文书