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 相关文章推荐
js直接编辑当前cookie的脚本
Sep 14 Javascript
JS和jquery获取各种屏幕的宽度和高度的代码
Aug 02 Javascript
纯javascript实现分页(两种方法)
Aug 26 Javascript
Node.js中文件操作模块File System的详细介绍
Jan 05 Javascript
javaScript+turn.js实现图书翻页效果实例代码
Feb 16 Javascript
详解Vue监听数据变化原理
Mar 08 Javascript
微信小程序 支付后台java实现实例
May 09 Javascript
angular.js实现列表orderby排序的方法
Oct 02 Javascript
微信小程序map组件结合高德地图API实现wx.chooseLocation功能示例
Jan 23 Javascript
vue实现购物车列表
Jun 30 Javascript
解决vue的touchStart事件及click事件冲突问题
Jul 21 Javascript
详解JavaScript 中的批处理和缓存
Nov 19 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
《雄兵连》系列首部大电影《烈阳天道》:可能是因为期望值太高了
2020/08/18 国漫
中国的第一台收音机
2021/03/01 无线电
php的chr和ord函数实现字符加减乘除运算实现代码
2011/12/05 PHP
PHP 文本文章分页代码 按标记或长度(不涉及数据库)
2012/06/07 PHP
php使用NumberFormatter格式化货币的方法
2015/03/21 PHP
PHPStrom 新建FTP项目以及在线操作教程
2016/10/16 PHP
thinkPHP框架动态配置用法实例分析
2018/06/14 PHP
css transform 3D幻灯片特效实现步骤解读
2013/03/27 Javascript
javascript函数声明和函数表达式区别分析
2014/12/02 Javascript
javascript表单验证和Window详解
2014/12/11 Javascript
AngularJS的一些基本样式初窥
2015/07/27 Javascript
解决jquery中动态新增的元素节点无法触发事件问题的两种方法
2015/10/30 Javascript
Bootstrap实现带暂停功能的轮播组件(推荐)
2016/11/25 Javascript
详解nodejs的express如何自动生成项目框架
2017/07/12 NodeJs
JavaScript实现职责链模式概述
2018/01/25 Javascript
jQuery实现图片简单轮播功能示例
2018/08/13 jQuery
微信小程序实现的动态设置导航栏标题功能示例
2019/01/31 Javascript
解决Layui数据表格显示无数据提示的问题
2019/11/14 Javascript
Express 配置HTML页面访问的实现
2020/11/01 Javascript
Python编程中字符串和列表的基本知识讲解
2015/10/14 Python
python中OrderedDict的使用方法详解
2017/05/05 Python
对Python中的@classmethod用法详解
2018/04/21 Python
详解Python3的TFTP文件传输
2018/06/26 Python
Python os.rename() 重命名目录和文件的示例
2018/10/25 Python
pygame游戏之旅 如何制作游戏障碍
2018/11/20 Python
Python二叉树的遍历操作示例【前序遍历,中序遍历,后序遍历,层序遍历】
2018/12/24 Python
为什么从Python 3.6开始字典有序并效率更高
2019/07/15 Python
Python通过cv2读取多个USB摄像头
2019/08/28 Python
python子线程退出及线程退出控制的代码
2019/10/16 Python
Python实现非正太分布的异常值检测方式
2019/12/09 Python
python输出pdf文档的实例
2020/02/13 Python
浅谈Python 钉钉报警必备知识系统讲解
2020/08/17 Python
Python读取ini配置文件传参的简单示例
2021/01/05 Python
深入解析HTML5的IndexedDB索引数据库
2015/09/14 HTML / CSS
师范生自我鉴定
2014/03/20 职场文书
唤醒紫霞仙子,携手再游三界!大话手游X《大话西游》电影合作专属剧情任务
2022/04/03 其他游戏