全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

node.js中http模块和url模块的简单介绍

前言

本文主要给大家介绍了关于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地址和端口号来访问这个服务器。

此时表示该服务器处于挂起的状态,此时在浏览器当中输入对应的ip地址与端口号即可得到服务端响应的内容。

二、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地址信息。

由于在通过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');


如上图所示,我们通过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');


其中最常用的是url.parse(req.url).pathname得到一个文件路径的字符串,以/开头,并且不包括查询部分的内容。使用url.parse(req.url).query可以得到一个查询部分的字符串。其中url.parse()方法的第二个参数是true,可以将所有的查询变为对象形式。

 console.log(url.parse(req.url,true).query);


通过这种方式可以快速得到客户端通过GET方式向服务器提交的数据。

总结

以上就是这篇文章的全部内容,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对的支持。


# nodejs  # http模块  # http模块详解  # url模块  # Node.js使用http模块实现后台服务器流程解析  # Node.js 搭建后端服务器内置模块( http+url+querystring 的使用)  # Node.js基础入门之path模块  # http模块使用详解  # 基于Node.js的http模块搭建HTTP服务器  # node.js使用http模块创建服务器和客户端完整示例  # Node.js进阶之核心模块https入门  # node.js 核心http模块  # 起一个服务器  # 返回一个页面的实例  # Node.js中Request模块处理HTTP协议请求的基本使用教程  # Node.js 中 http 模块的深度剖析与实战应用小结  # 客户端  # 的是  # 设置为  # 回调  # 端口号  # 第二个  # 自定义  # 可以得到  # 挂起  # 相关内容  # 说了  # 找不到  # 不多  # 有一定  # 可以通过  # 给大家  # 如果没有  # 所示  # 这篇文章  # 一直没有 


相关文章: 网站制作难吗安全吗,做一个网站需要多久时间?  已有域名和空间如何快速搭建网站?  建站之星如何修改网站生成路径?  儿童网站界面设计图片,中国少年儿童教育网站-怎么去注册?  建站主机功能解析:服务器选择与快速搭建指南  香港服务器网站推广:SEO优化与外贸独立站搭建策略  香港服务器网站生成指南:免费资源整合与高速稳定配置方案  湖南网站制作公司,湖南上善若水科技有限公司做什么的?  如何选择可靠的免备案建站服务器?  教学论文网站制作软件有哪些,写论文用什么软件 ?  C#如何使用XPathNavigator高效查询XML  如何在阿里云ECS服务器部署织梦CMS网站?  如何优化Golang Web性能_Golang HTTP服务器性能提升方法  建站上传速度慢?如何优化加速网站加载效率?  油猴 教程,油猴搜脚本为什么会网页无法显示?  电商网站制作价格怎么算,网上拍卖流程以及规则?  如何选择CMS系统实现快速建站与SEO优化?  Dapper的Execute方法的返回值是什么意思 Dapper Execute返回值详解  较简单的网站制作软件有哪些,手机版网页制作用什么软件?  怎么用手机制作网站链接,dw怎么把手机适应页面变成网页?  高配服务器限时抢购:企业级配置与回收服务一站式优惠方案  建站主机类型有哪些?如何正确选型  ,想在网上投简历,哪几个网站比较好?  制作网站外包平台,自动化接单网站有哪些?  如何选择长沙网站建站模板?H5响应式与品牌定制哪个更优?  宝塔面板如何快速创建新站点?  如何在IIS7中新建站点?详细步骤解析  如何在Windows环境下新建FTP站点并设置权限?  如何在IIS7上新建站点并设置安全权限?  如何通过VPS搭建网站快速盈利?  C++用Dijkstra(迪杰斯特拉)算法求最短路径  怎么将XML数据可视化 D3.js加载XML  如何快速上传建站程序避免常见错误?  大连 网站制作,大连天途有线官网?  重庆网站制作公司哪家好,重庆中考招生办官方网站?  如何确保FTP站点访问权限与数据传输安全?  单页制作网站有哪些,朋友给我发了一个单页网站,我应该怎么修改才能把他变成自己的呢,请求高手指点迷津?  已有域名如何免费搭建网站?  Swift开发中switch语句值绑定模式  宝塔Windows建站如何避免显示默认IIS页面?  TestNG的testng.xml配置文件怎么写  如何挑选最适合建站的高性能VPS主机?  免费ppt制作网站,有没有值得推荐的免费PPT网站?  Python lxml的etree和ElementTree有什么区别  建站之星后台密码遗忘?如何快速找回?  手机怎么制作网站教程步骤,手机怎么做自己的网页链接?  高性能网站服务器配置指南:安全稳定与高效建站核心方案  购物网站制作费用多少,开办网上购物网站,需要办理哪些手续?  建站之星导航如何优化提升用户体验?  如何在IIS中新建站点并配置端口与物理路径? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。