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 相关文章推荐
jquery 查找新建元素代码
Jul 06 Javascript
浅析JavaScript中的typeof运算符
Nov 30 Javascript
jQuery实现的感应鼠标悬停图片色彩渐显效果
Mar 03 Javascript
利用jQuery及AJAX技术定时更新GridView的某一列数据
Dec 04 Javascript
AngularJS HTML DOM详解及示例代码
Aug 17 Javascript
jQuery使用animate实现ul列表项相互飘动效果示例
Sep 16 Javascript
jquery+ajax实现省市区三级联动 (封装和不封装两种方式)
May 15 jQuery
Three.js开发实现3D地图的实践过程总结
Nov 20 Javascript
详解Node.js中的Async和Await函数
Feb 22 Javascript
微信小程序用户授权弹窗 拒绝时引导用户重新授权实现
Jul 29 Javascript
详解vue中$nextTick和$forceUpdate的用法
Dec 11 Javascript
Vue父子之间值传递的实例教程
Jul 02 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 正则 过滤html 的超链接
2009/06/02 PHP
php使用date和strtotime函数输出指定日期的方法
2014/11/14 PHP
两种php实现图片上传的方法
2016/01/22 PHP
PHP设计模式入门之状态模式原理与实现方法分析
2020/04/26 PHP
Add a Table to a Word Document
2007/06/15 Javascript
node.js实现逐行读取文件内容的代码
2014/06/27 Javascript
jQuery Mobile页面返回不需要重新get
2016/04/26 Javascript
一个简单不报错的summernote 图片上传案例
2016/07/11 Javascript
jquery无法为动态生成的元素添加点击事件的解决方法(推荐)
2016/12/26 Javascript
javascript正则表达式模糊匹配IP地址功能示例
2017/01/06 Javascript
微信小程序 缓存(本地缓存、异步缓存、同步缓存)详解
2017/01/17 Javascript
Angular.js中数组操作的方法教程
2017/07/31 Javascript
Vue学习笔记之表单输入控件绑定
2017/09/05 Javascript
在React 组件中使用Echarts的示例代码
2017/11/08 Javascript
NodeJS 中Stream 的基本使用
2018/07/30 NodeJs
在微信小程序中渲染HTML内容的方法示例
2018/09/28 Javascript
微信小程序自定义导航教程(兼容各种手机)
2018/12/12 Javascript
JS使用对象的defineProperty进行变量监控操作示例
2019/02/02 Javascript
实用的Vue开发技巧
2019/05/30 Javascript
浅析vue中的provide / inject 有什么用处
2019/11/10 Javascript
[03:40]DOTA2英雄梦之声_第01期_炼金术士
2014/06/23 DOTA
python实现定制交互式命令行的方法
2014/07/03 Python
浅谈python对象数据的读写权限
2016/09/12 Python
Python抓取聚划算商品分析页面获取商品信息并以XML格式保存到本地
2018/02/23 Python
Python中print和return的作用及区别解析
2019/05/05 Python
pandas中DataFrame修改index、columns名的方法示例
2019/08/02 Python
python批量处理txt文件的实例代码
2020/01/13 Python
20佳惊艳的HTML5应用程序示例分享
2011/05/03 HTML / CSS
IBatis持久层技术
2016/07/18 面试题
计算机专业个人简短的自我评价
2013/10/23 职场文书
高中生学期学习自我评价
2014/02/24 职场文书
土建施工员岗位职责
2015/04/11 职场文书
民事上诉状范文
2015/05/22 职场文书
2016年学习贯彻十八届五中全会精神心得体会
2016/01/05 职场文书
使用Vue3+Vant组件实现App搜索历史记录功能(示例代码)
2021/06/09 Vue.js
SpringBoot 拦截器妙用你真的了解吗
2021/07/01 Java/Android