node.js(二)各种模块
我们知道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(二)各种模块的更多相关文章
- Node.js入门:模块机制
CommonJS规范 早在Netscape诞生不久后,JavaScript就一直在探索本地编程的路,Rhino是其代表产物.无奈那时服务端JavaScript走的路均是参考众多服务器端语言来 ...
- 利用Node.js的Net模块实现一个命令行多人聊天室
1.net模块基本API 要使用Node.js的net模块实现一个命令行聊天室,就必须先了解NET模块的API使用.NET模块API分为两大类:Server和Socket类.工厂方法. Server类 ...
- Node.js的Formidable模块的使用
今天总结了下Node.js的Formidable模块的使用,下面做一些简要的说明. 1) 创建Formidable.IncomingForm对象 var form = new formidab ...
- Node.js的net模块
net模块提供了一个异步网络包装器,用于TCP网络编程,它包含了创建服务器和客户端的方法 创建TCP服务器 net.createServer方法 创建客户端去连接服务器 net.connect方法 简 ...
- node.js中express模块创建服务器和http模块客户端发请求
首先下载express模块,命令行输入 npm install express 1.node.js中express模块创建服务端 在js代码同文件位置新建一个文件夹(www_root),里面存放网页文 ...
- node.js中ws模块创建服务端和客户端,网页WebSocket客户端
首先下载websocket模块,命令行输入 npm install ws 1.node.js中ws模块创建服务端 // 加载node上websocket模块 ws; var ws = require( ...
- node.js中net模块创建服务器和客户端(TCP)
node.js中net模块创建服务器和客户端 1.node.js中net模块创建服务器(net.createServer) // 将net模块 引入进来 var net = require(" ...
- 第5月第10天 node.js的request模块
1.node.js的request模块 http://www.cnblogs.com/meteoric_cry/archive/2012/08/18/2645530.html
- node.js使用mysql模块的坑
之前用node.js写的订餐系统,很容易挂掉,一直也没想去解决它.今天看了一下,试了试,原因是在连接数据库的时候没有对error事件进行处理,导致程序一直挂在那里,需要重启服务才能正常使用. ...
- node.js的http模块的基础 学到的东西
node.js的http模块的基础 学到的东西 其中客户端:我们在node.js中如果要请求服务端中的js或者其他脚本的话要使用http.request()方法他会返回http.ClientReque ...
随机推荐
- Spring_用Spring容器创建对象并给属性赋值
创建spring配置文件:spring-config.xml.对象的创建和赋值都在这里进行配置. 创建实体类,设置属性 import java.util.List; import java.util. ...
- RN 环境搭建 运行demo App
1.环境搭建 1.1 JDK 1.2Android JDK 需要安装c++环境(我选择安装android studio) 1.3Node npm config set registry https: ...
- if _name_ == " _main_"
1.作用 py文件有2种使用方法,第1是自己本脚本自己独立执行:第2是被import到其他文件脚本中执行. if _name_ == " _main_" 该语句控制其他下一步的脚 ...
- jvm 分代回收算法通俗理解
jvm区域总体分两类,heap区和非heap区.heap区又分:Eden Space(伊甸园).Survivor Space(幸存者区).Tenured Gen(老年代-养老区). 非heap区又分: ...
- Leetcode443.String Compression压缩字符串
给定一组字符,使用原地算法将其压缩. 压缩后的长度必须始终小于或等于原数组长度. 数组的每个元素应该是长度为1 的字符(不是 int 整数类型). 在完成原地修改输入数组后,返回数组的新长度. 进阶: ...
- LUOGU P1937 [USACO10MAR]仓配置Barn Allocation
传送门 解题思路 扫了一眼觉得是贪心+线段树,结果贪心的时候刚开始按区间长度排的序..这还有82分,后来叉了自己,换成按右端点排序过了. 代码 #include<iostream> #in ...
- LUOGU P4095 [HEOI2013]Eden 的新背包问题
题目描述 " 寄 没 有 地 址 的 信 ,这 样 的 情 绪 有 种 距 离 ,你 放 着 谁 的 歌 曲 ,是 怎 样 的 心 情 . 能 不 能 说 给 我 听 ." 失忆的 ...
- bzoj 2503 相框——思路
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=2503 我也知道应该只关注度数. #include<iostream> #incl ...
- Vue.js系列之项目搭建(vue2.0 + vue-cli + webpack )
1.安装node node.js环境(npm包管理器) cnpm npm的淘宝镜像 从node.js官网下载并安装node,安装过程很简单,一路“下一步”就可以了(傻瓜式安装).安装完成之后,打开命令 ...
- iphone越狱开发之Class-Dump
刚刚开始接触ios越狱开发,现在开始纪录每天的点滴进展 装载请注明 http://www.cnblogs.com/xiongwj0910/archive/2012/08/16/2642988.html ...