我们知道Node.js适合于IO密集型应用,不适合于CPU密集型应用。
    JS和Node.js区别:
         JS运行于客户端浏览器中,存在兼容性问题;数据类型:值类型+引用类型(ES+DOM/BOM+自定义)
Node.js运行于服务器端(V8引擎),不存在兼容性问题;数据类型:值类型+引用类型(ES+扩展对象+自定义)。

Node.js中每个.js文件都是一个“Module”,每个模块都可以引入其它模块;也可以导出自己的成员供其它模块来使用。

 1. node.js原生模块——querystring

querystring模块——用于处理http请求url中的查询字符串

var obj = qs.parse(str)  把查询字符串解析为js对象。---反序列化

var str = qs.stringify(obj)  把js对象转换为查询字符串。--序列化

这是所谓的序列化和反序列化过程。

  • 序列化: 将数据结构或对象转换成二进制串的过程
  • 反序列化:将在序列化过程中所生成的二进制串转换成数据结构或者对象的过程

2.node.js官方提供的原生模块——url

URL模块用于解析一个http请求地址,获取其中各个不同的部分。

var obj = url.parse(str)  把一个URL字符串解析为一个对象

var obj = url.parse(str,true) 把一个URL字符串解析为一个对象,并且把其中的查询字符串也解析为一个对象。

3.node.js官方提供的原生的模块——buffer

buffer,也称为缓冲区,本质是一块内存区域,用于暂存以后用到的数据(可能是字符串,数据,视频等),该区域被称为缓存区。

---分配一个指定大小的缓冲区:var buf1 =Buffer.alloc(1024);

---使用一个数字数字创建一个缓冲区: var buf2 = Buffer.from([1,3,5]);

---使用一个字符串创建一个缓冲区 :var buf3=Buffer.from('abcd');

---把一个缓冲区中的数据转换为字符串:var str = buf3.toString();

4.node.js官方提供的原生模块——fs

    fs模块提供了对文件系统中的文件/目录进行增删改查和读写的功能。

---同步读取文件中的内容:var data = fs.readFileSync(file);

---同步向文件中写出内容(删除已有内容):fs.writeFileSync(file,str/buf);

---同步向文件中追加写出内容(不删除已有的内容):fs.appendFileSync(file,str/buf);

---异步读取文件中的内容:fs.readFile(file,function(err,data){});

---异步向文件中写出内容(删除已有的内容):fs.writeFile(file,str/buf,function(err{})

5.node.js官方提供的原生模块http

HTTP模块可用于编写基于HTTP协议的客户端程序(即浏览器),也可以用于编写基于HTTP协议的客户端程序。

用HTTP模块编写一个web服务器:

---接受客户的的http请求信息;

---解析客户的请求信息;

---读取客户端请求的文件

---向客户端发送http响应消息,主体就是客户端请求的文件。

var server = http.createServer();

server.listen(80);

server.on('request',function(req,res){

//解析请求信息

//向客户端写出响应消息}

         

node.js(二)各种模块的更多相关文章

  1. Node.js入门:模块机制

    CommonJS规范      早在Netscape诞生不久后,JavaScript就一直在探索本地编程的路,Rhino是其代表产物.无奈那时服务端JavaScript走的路均是参考众多服务器端语言来 ...

  2. 利用Node.js的Net模块实现一个命令行多人聊天室

    1.net模块基本API 要使用Node.js的net模块实现一个命令行聊天室,就必须先了解NET模块的API使用.NET模块API分为两大类:Server和Socket类.工厂方法. Server类 ...

  3. Node.js的Formidable模块的使用

    今天总结了下Node.js的Formidable模块的使用,下面做一些简要的说明. 1)     创建Formidable.IncomingForm对象 var form = new formidab ...

  4. Node.js的net模块

    net模块提供了一个异步网络包装器,用于TCP网络编程,它包含了创建服务器和客户端的方法 创建TCP服务器 net.createServer方法 创建客户端去连接服务器 net.connect方法 简 ...

  5. node.js中express模块创建服务器和http模块客户端发请求

    首先下载express模块,命令行输入 npm install express 1.node.js中express模块创建服务端 在js代码同文件位置新建一个文件夹(www_root),里面存放网页文 ...

  6. node.js中ws模块创建服务端和客户端,网页WebSocket客户端

    首先下载websocket模块,命令行输入 npm install ws 1.node.js中ws模块创建服务端 // 加载node上websocket模块 ws; var ws = require( ...

  7. node.js中net模块创建服务器和客户端(TCP)

    node.js中net模块创建服务器和客户端 1.node.js中net模块创建服务器(net.createServer) // 将net模块 引入进来 var net = require(" ...

  8. 第5月第10天 node.js的request模块

    1.node.js的request模块 http://www.cnblogs.com/meteoric_cry/archive/2012/08/18/2645530.html

  9. node.js使用mysql模块的坑

      之前用node.js写的订餐系统,很容易挂掉,一直也没想去解决它.今天看了一下,试了试,原因是在连接数据库的时候没有对error事件进行处理,导致程序一直挂在那里,需要重启服务才能正常使用.   ...

  10. node.js的http模块的基础 学到的东西

    node.js的http模块的基础 学到的东西 其中客户端:我们在node.js中如果要请求服务端中的js或者其他脚本的话要使用http.request()方法他会返回http.ClientReque ...

随机推荐

  1. 微信小程序之组件的集合(五)

    这个是学习复杂的组件的封装的,在课程中,主要实现的是书单上方的搜索功能组件的开发,这个应该是较之前的组件是有一定难度的,但是现在学到现在,感觉前端的内容和后端的内容比较起来,还是比较容易的,而且好多内 ...

  2. myeclipse 配置resin

    一.新建web project 二.配置本地resin 创建resin/conf/test.conf文件(可从resin.conf copy)中修改 <web-app id="/&qu ...

  3. spring cloud深入学习(十一)-----服务网关zuul

    前面的文章我们介绍了,Eureka用于服务的注册于发现,Feign支持服务的调用以及均衡负载,Hystrix处理服务的熔断防止故障扩散,Spring Cloud Config服务集群配置中心,似乎一个 ...

  4. 安卓手机--键盘谈起后 fixed背景图片被键盘顶起的问题

    参考文章: vue写法: <div class="main" :style="{ height: bodyHeight + 'px' }"> < ...

  5. LINUX使用 su 命令临时切换用户身份

    1.su 的适用条件和威力 su命令就是切换用户的工具,怎么理解呢?比如我们以普通用户beinan登录的,但要添加用户任务,执行useradd ,beinan用户没有这个权限,而这个权限恰恰由root ...

  6. cmd命令调用powershell脚本方法

    cmd方法: powershell -command ". ('ps1脚本路径'); WriteInfo  -param 'param参数值'" ps1脚本代码: function ...

  7. Liferay 7:Liferay DXP全套教程内附源码

    分享是美德 都是英文教程,有不明白的问题可以随时咨询我. http://www.javasavvy.com/liferay-7-hooks-tutorials/

  8. 通过游戏学python 3.6 第一季 第七章 实例项目 猜数字游戏--核心代码--猜测次数--随机函数和屏蔽错误代码--优化代码及注释--简单账号密码登陆--账号的注册查询和密码的找回修改--锁定账号

    #猜数字--核心代码--猜测次数--随机函数和屏蔽错误代码---优化代码及注释--简单账号密码登陆--账号的注册查询和密码的找回修改--锁定账号 #猜数字--核心代码--猜测次数--随机函数和屏蔽错误 ...

  9. linux 调整系统时区

    查看当前时间: date 查看当天详细时区 timedatectl 调整为正确时区 timedatectl set-timezone 'Asia/Shanghai'

  10. 公共钥匙盒 ccf

    试题编号: 201709-2 试题名称: 公共钥匙盒 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 有一个学校的老师共用N个教室,按照规定,所有的钥匙都必须放在公共钥匙盒里, ...