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过滤特殊字符输入适合输入、粘贴、拖拽多种情况
Mar 22 Javascript
javascript实现图片延迟加载方法汇总(三种方法)
Aug 27 Javascript
jquery带动画效果幻灯片特效代码
Aug 27 Javascript
理解javascript中的with关键字
Feb 15 Javascript
如何使用PHP+jQuery+MySQL实现异步加载ECharts地图数据(附源码下载)
Feb 23 Javascript
jQuery实现的图片轮播效果完整示例
Sep 12 Javascript
微信小程序之小豆瓣图书实例
Nov 30 Javascript
JavaScript实现打印星型金字塔功能实例分析
Sep 27 Javascript
利用ECharts.js画K线图的方法示例
Jan 10 Javascript
微信小程序自定义多列选择器使用详解
Jun 21 Javascript
JS如何把字符串转换成json
Feb 21 Javascript
vue脚手架项目创建步骤详解
Mar 02 Vue.js
你应该知道的几类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
win10环境PHP 7 安装配置【教程】
2016/05/09 PHP
php实现购物车产品删除功能(2)
2020/07/23 PHP
javascript 建设银行登陆键盘
2008/06/10 Javascript
很酷的javascript loading效果代码
2008/06/18 Javascript
网页整体变灰白色(兼容各浏览器)实例
2013/04/21 Javascript
从零学JS之你需要了解的几本书
2014/05/19 Javascript
JavaScript数据结构和算法之二叉树详解
2015/02/11 Javascript
Node.js中的process.nextTick使用实例
2015/06/25 Javascript
JavaScript给input的value赋值引发的关于基本类型值和引用类型值问题
2015/12/07 Javascript
AngularJS入门教程之AngularJS表达式
2016/04/18 Javascript
AngularJS教程之简单应用程序示例
2016/08/16 Javascript
Bootstrap jquery.twbsPagination.js动态页码分页实例代码
2017/02/20 Javascript
不得不看之JavaScript构造函数及new运算符
2017/08/21 Javascript
vue 登录滑动验证实现代码
2018/08/24 Javascript
从源码里了解vue中的nextTick的使用
2018/11/22 Javascript
Element-ui中元素滚动时el-option超出元素区域的问题
2019/05/30 Javascript
解决Vue keep-alive 调用 $destory() 页面不再被缓存的情况
2020/10/30 Javascript
[01:38:19]夜魇凡尔赛茶话会 第五期
2021/03/11 DOTA
python调用cmd复制文件代码分享
2013/12/27 Python
Python序列之list和tuple常用方法以及注意事项
2015/01/09 Python
简单了解python 邮件模块的使用方法
2019/07/24 Python
python列表生成器迭代器实例解析
2019/12/19 Python
django3.02模板中的超链接配置实例代码
2020/02/04 Python
python判断正负数方式
2020/06/03 Python
Django filter动态过滤与排序实现过程解析
2020/11/26 Python
Django解决frame拒绝问题的方法
2020/12/18 Python
英国最大的滑板品牌选择:Route One
2019/09/22 全球购物
中学生期末评语
2014/02/03 职场文书
应聘编辑自荐信范文
2014/03/12 职场文书
大专学生求职自荐信
2014/07/06 职场文书
家装业务员岗位职责
2015/04/03 职场文书
面试通知邮件
2015/04/20 职场文书
道歉信怎么写
2015/05/12 职场文书
jQuery class属性操作addClass()与removeClass()、hasClass()、toggleClass()
2021/03/31 jQuery
TensorFlow中tf.batch_matmul()的用法
2021/06/02 Python
Python&Matlab实现樱花的绘制
2022/04/07 Python