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 Autocomplete 结合asp.net使用要点
Oct 29 Javascript
jquery 单引号和双引号的区别及使用注意
Jul 31 Javascript
JS简单实现元素复制示例附图
Nov 19 Javascript
纯js代码制作的网页时钟特效【附实例】
Mar 30 Javascript
JS/jQ实现免费获取手机验证码倒计时效果
Jun 13 Javascript
AngularJS入门教程之模块化操作用法示例
Nov 02 Javascript
ajax级联菜单实现方法实例分析
Nov 28 Javascript
div实现自适应高度的textarea实现angular双向绑定
Jan 08 Javascript
layui表格 列自动适应大小失效的解决方法
Sep 06 Javascript
jQuery实现购物车全功能
Jan 11 jQuery
JavaScript ES6的函数拓展
Jan 18 Javascript
vue/cli 配置动态代理无需重启服务的方法
May 20 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
可以在线执行PHP代码包装修正版
2008/03/15 PHP
PHP用mysql数据库存储session的代码
2010/03/05 PHP
php动态生成函数示例
2014/03/21 PHP
php实现俄罗斯乘法实例
2015/03/07 PHP
Extjs中常用表单介绍与应用
2010/06/07 Javascript
JavaScript中的null和undefined解析
2012/04/14 Javascript
jQuery ajax serialize()方法的使用以及常见问题解决
2013/01/27 Javascript
单击浏览器右上角的X关闭窗口弹出提示的小例子
2013/06/12 Javascript
jQuery使用empty()方法删除元素及其所有子元素的方法
2015/03/26 Javascript
JavaScript实现数组随机排序的方法
2015/06/26 Javascript
JS实现向iframe中表单传值的方法
2017/03/24 Javascript
jQuery实现动态给table赋值的方法示例
2017/07/04 jQuery
Vue中computed、methods与watch的区别总结
2019/04/10 Javascript
Vue.extend实现挂载到实例上的方法
2019/05/01 Javascript
详解vue中的父子传值双向绑定及数据更新问题
2019/06/13 Javascript
详解vue 2.6 中 slot 的新用法
2019/07/09 Javascript
ES10的13个新特性示例(小结)
2019/09/23 Javascript
Vue 嵌套路由使用总结(推荐)
2020/01/13 Javascript
js实现删除json中指定的元素
2020/09/22 Javascript
使用python编写udp协议的ping程序方法
2018/04/22 Python
详解python3中tkinter知识点
2018/06/21 Python
Python之变量类型和if判断方式
2020/05/05 Python
Python如何自动获取目标网站最新通知
2020/06/18 Python
Django Form常用功能及代码示例
2020/10/13 Python
python mock测试的示例
2020/10/19 Python
TripAdvisor西班牙官方网站:全球领先的旅游网站
2018/01/10 全球购物
西部世纪.net笔试题面试题
2014/04/03 面试题
简述进程的启动、终止的方式以及如何进行进程的查看
2014/02/20 面试题
中学生学习生活的自我评价
2013/10/26 职场文书
运动会邀请函范文
2014/01/31 职场文书
幼儿园大班毕业感言
2014/02/06 职场文书
《陶罐和铁罐》教学反思
2014/02/19 职场文书
党员公开承诺事项
2014/03/25 职场文书
幼儿教师师德师风自我评价
2015/03/05 职场文书
高中班主任心得体会
2016/01/07 职场文书
2016学校先进党组织事迹材料
2016/02/29 职场文书