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 相关文章推荐
JavaScript arguments 多参传值函数
Oct 24 Javascript
jquery获取tr并更改tr内容示例代码
Feb 13 Javascript
js实现当前输入框高亮显示的方法
Aug 19 Javascript
javascript手风琴下拉菜单实现代码
Nov 12 Javascript
基于vue cli重构多页面脚手架过程详解
Jan 23 Javascript
Vue组件通信的四种方式汇总
Feb 08 Javascript
JavaScript中arguments和this对象用法分析
Aug 08 Javascript
解决angularJS中input标签的ng-change事件无效问题
Sep 13 Javascript
详解处理Vue单页面应用SEO的另一种思路
Nov 09 Javascript
JavaScript 预解析的4种实现方法解析
Sep 03 Javascript
Vue 自定义标签的src属性不能使用相对路径的解决
Sep 17 Javascript
js实现复制粘贴的两种方法
Dec 04 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
PHP入门学习的几个不错的实例代码
2008/07/13 PHP
解析php中如何调用用户自定义函数
2013/08/06 PHP
PHP中strlen()和mb_strlen()的区别浅析
2014/06/19 PHP
PHP对象递归引用造成内存泄漏分析
2014/08/28 PHP
php的dl函数用法实例
2014/11/06 PHP
YII2 实现多语言配置的方法分享
2017/01/11 PHP
POST一个JSON格式的数据给Restful服务实例详解
2017/04/07 PHP
Jqyery中同等与js中windows.onload的应用
2011/05/10 Javascript
js中将URL中的参数提取出来作为对象的实现代码
2011/08/16 Javascript
node.js中的定时器nextTick()和setImmediate()区别分析
2014/11/26 Javascript
jQuery使用$.get()方法从服务器文件载入数据实例
2015/03/25 Javascript
JavaScript检测并限制复选框选中个数的方法
2015/08/12 Javascript
深入理解Vue 的条件渲染和列表渲染
2017/09/01 Javascript
详解angularjs4部署文件过大解决过程
2018/12/05 Javascript
微信小程序实现复选框效果
2018/12/28 Javascript
elementUI select组件value值注意事项详解
2019/05/29 Javascript
关于element-ui的隐藏组件el-scrollbar的使用
2019/05/29 Javascript
vue轮播组件实现$children和$parent 附带好用的gif录制工具
2019/09/26 Javascript
小程序新版订阅消息模板消息
2019/12/31 Javascript
详解Webpack4多页应用打包方案
2020/07/16 Javascript
Vue获取微博授权URL代码实例
2020/11/04 Javascript
[04:26]2014DOTA2西雅图国际邀请赛 总决赛TOPPLAY
2014/07/22 DOTA
[01:03:31]DOTA2上海特级锦标赛B组资格赛#1 Alliance VS Fnatic第二局
2016/02/26 DOTA
[43:51]2018DOTA2亚洲邀请赛3月30日 小组赛B组 EG VS Secret
2018/03/31 DOTA
解决python测试opencv时imread导致的错误问题
2019/01/26 Python
利用HTML5中Geolocation获取地理位置调用Google Map API在Google Map上定位
2013/01/23 HTML / CSS
大一学生假期实习的自我评价
2013/10/12 职场文书
物业门卫岗位职责
2013/12/28 职场文书
国税会议欢迎词
2014/01/16 职场文书
计算机系统管理员求职信
2014/06/20 职场文书
2015年社区中秋节活动总结
2015/03/23 职场文书
迎新晚会主持词开场白
2015/05/28 职场文书
董事长开业致辞
2015/07/29 职场文书
JavaScript 事件捕获冒泡与捕获详情
2021/11/11 Javascript
python函数的两种嵌套方法使用
2022/04/02 Python
MySQL 逻辑备份 into outfile
2022/05/15 MySQL