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 相关文章推荐
用cookies实现的可记忆的样式切换效果代码下载
Dec 24 Javascript
Jquery ajaxsubmit上传图片实现代码
Nov 04 Javascript
extjs4 treepanel动态改变行高度示例
Dec 17 Javascript
jQuery中DOM操作实例分析
Jan 23 Javascript
jQuery实现弹出窗口中切换登录与注册表单
Jun 05 Javascript
js弹出框、对话框、提示框、弹窗实现方法总结(推荐)
May 31 Javascript
轻松掌握JavaScript单例模式
Aug 25 Javascript
jQuery插件easyUI实现通过JS显示Dialog的方法
Sep 16 Javascript
jQuery用noConflict代替$的实现方法
Apr 12 jQuery
SVG动画vivus.js库使用小结(实例代码)
Sep 14 Javascript
vue如何使用async、await实现同步请求
Dec 09 Javascript
vue-cli点击实现全屏功能
Mar 07 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 变量的定义方法
2010/01/26 PHP
PHP输出XML到页面的3种方法详解
2013/06/06 PHP
美图秀秀web开放平台--PHP流式上传和表单上传示例分享
2014/06/22 PHP
smarty缓存用法分析
2014/12/16 PHP
基于PHP实现短信验证码发送次数限制
2020/07/11 PHP
不错的一个日期输入 动态
2006/11/06 Javascript
JQuery SELECT单选模拟jQuery.select.js
2009/11/12 Javascript
Extjs中DisplayField的日期或者数字格式化扩展
2010/09/03 Javascript
IE下使用cloneNode注意事项分享
2012/11/22 Javascript
浅谈jQuery中的事件
2015/03/23 Javascript
ionic cordova一次上传多张图片(类似input file提交表单)的实现方法
2016/12/16 Javascript
原生js验证简洁注册登录页面
2016/12/17 Javascript
使用FileReader API创建Vue文件阅读器组件
2018/04/03 Javascript
原生JavaScript实现remove()和recover()功能示例
2018/07/24 Javascript
vue2.0页面前进刷新回退不刷新的实现方法
2018/07/31 Javascript
layui+jquery支持IE8的表格分页方法
2019/09/28 jQuery
使用Python求解最大公约数的实现方法
2015/08/20 Python
Python自定义线程类简单示例
2018/03/23 Python
对python中for、if、while的区别与比较方法
2018/06/25 Python
python 读取文件并替换字段的实例
2018/07/12 Python
python的一些加密方法及python 加密模块
2019/07/11 Python
Virtualenv 搭建 Py项目运行环境的教程详解
2020/06/22 Python
Python csv文件记录流程代码解析
2020/07/16 Python
python中os.remove()用法及注意事项
2021/01/31 Python
Canvas 文本转粒子效果的实现代码
2019/02/14 HTML / CSS
GUESS盖尔斯法国官网:美国时尚品牌
2016/09/23 全球购物
英国领先的在线高尔夫商店:Gamola Golf
2019/11/16 全球购物
城市精细化管理实施方案
2014/03/04 职场文书
关于护士节的演讲稿
2014/05/26 职场文书
英语感谢信范文
2015/01/20 职场文书
教师个人教学总结
2015/02/11 职场文书
格林童话读书笔记
2015/06/30 职场文书
创业计划书之网吧
2019/10/10 职场文书
golang 接口嵌套实现复用的操作
2021/04/29 Golang
微信小程序结合ThinkPHP5授权登陆后获取手机号
2021/11/23 PHP
MySQL 表锁定 LOCK和UNLOCK TABLES的 SQL语法
2022/04/18 MySQL