node.js常用的几个模块总结
/*
* 一 util
* 是 node 里面一个工具模块 ,node 里面几乎所有的模块 都会用到 在这个模块
* 功能:
* 1 实现继承 这是主要功能
* 2 实现对象的完整输出
* 3 实现判断数据类型
*
*/
//引入工具类
var util = require("util");
function Parent(){
//继承Parent函数内的内容 为内部继承
this.name = "爸爸";
this.age = "50";
this.sayHello = function(){
console.log("hello");
}
}
//继承Parent的外加属性 为外部继承
Parent.prototype.getName = function(){
console.log(this.name);
}
function Child(){
//不使用inherits实现继承
Parent.call(this);
}
//实现child继承parent
// 工具类 util 里面的inherits 只能继承原型链(prototype)的方法和属性,无法继承类自有(直接写在类里面的)的方法和属性
util.inherits(Child,Parent);
console.log(Child)
/*
*path模块
*
* 功能:格式规范化路径
*
*/
//引入模块
var path = require("path");
var str = "../d\/d/fg/gg//.l";
//格式化不规范的路径
console.log(path.normalize(str));
//拼接路径
var res = path.join("s/b/c/d","../f");
console.log(res);
/*
*fs模块
* 1 操作的文件
* 2 操作目录
*/
/*
*文件部分(都有同步和异步的区分 这里只讨论异步)
*/
var fs = require("fs");
//1 读取文件
//fs.readFile("1.txt","utf-8",function(error,data){
// if(error){
// //console.log("读取文件失败");
// return console.error(error);
// }else{
// console.log(data);
// }
//}) //2 写入文件
//参数:1 路径 2 文件内容 3 可选参数(文件内容的信息) 4 回调函数
//对于参数1,如果路径不存在 会创建新的文件,如果存在会在原文件写入内容 //fs.writeFile("lxl.txt","hello world",{
// flag:"a",//a不会覆盖上一次运行结果 w覆盖上一次运行结果
// encoding:"utf-8"
//},function(error){
//
//});
// 2 写入文件的第二种方式
//fs.appendFile("hhh.txt","真的假的?",function(error,data){//append拼接 默认为 a 的方式
//
//}); //1 fs本身没有提供拷贝方法,自己实现一个
//function Copy(src,desc){
// fs.readFile(src,"utf-8",function(error,data){
// if(error){
//
// }else{
// // 读取成功,写入新文件
// fs.writeFile(desc,data,{flag:"w"},function(error){
//
// })
// }
// })
//}
//
//Copy("lxl.txt","ssss.txt"); //目录操作部分
//1.读取目录
fs.readdir("dir1",function(err,files){
if(err){
console.log("读取失败")
}else{
console.log(files);
}
});
//2.创建目录
fs.mkdir("dir2",0777,function(error){
if (error){
console.log("创建文件夹失败");
}else{
console.log("创建文件夹success");
}
});
//3.判断文件或者文件夹是否存在
fs.exists("1.jpg",function(exist){
console.log(exist);
})
//4.修改文件名
fs.rename("1.jpg","2.jpg",function(err){
if (err){
console.log("修改失败");
}else{ }
})
/*
*
* 前面的文件处理方式(主要指读取数据和写入数据的方法,针对的都是小文件).
* 而对于大数据处理,readile 和 writeFile处理起来都有一定的问题.
* 大数据处理采用 stream 流的方式
*/ //引入fs模块
var fs = require("fs");
//创建读取的数据流
var read = fs.createReadStream("video.mp4");
//实现拷贝一个 video 的副本
var wr = fs.createWriteStream("副本video.mp4");
//stream 之所以可以用来处理大数据,是因为它把数据分隔成一小块一小块来处理,并不是整个文件作为整体去处理.
// 一小块(64kb)
// var times = 0;
// read.on("data",function(chunk){
// times ++;
// wr.write(chunk);
//
// })
// read.on("end",function(){
// console.log(times);
// }) //pipe 是一个管道,用来连接输入流和输出流,读取的数据流,直接通过管道写入的写入流里面
read.pipe(wr);
下面是我的公众号,大家可以关注一下,可以一起学习,一起进步:
node.js常用的几个模块总结的更多相关文章
- Node.js 常用工具
Node.js 常用工具 util 是一个Node.js 核心模块,提供常用函数的集合,用于弥补核心JavaScript 的功能 过于精简的不足. util.inherits util.inherit ...
- Node.js 常用工具util包
Node.js 常用工具 util 是一个Node.js 核心模块,提供常用函数的集合,用于弥补核心JavaScript 的功能 过于精简的不足. util.isError(obj); util.is ...
- [Node.js与数据库]node-mysql 模块介绍
[Node.js与数据库]node-mysql 模块介绍 转载至:https://itbilu.com/nodejs/npm/NyPG8LhlW.html#multiple-statement-q ...
- Node.js进程管理之Process模块
在前面Node.js事件运行机制也有提到,Node.js应用在单个线程运行,但是现在大部分服务器都是多处理器,为了方便使用多个进程,Node.js提供了3个模块.Process模块提供了访问正在运行的 ...
- node.js(二)各种模块
我们知道Node.js适合于IO密集型应用,不适合于CPU密集型应用. JS和Node.js区别: JS运行于客户端浏览器中,存在兼容性问题:数据类型:值类型+引用类型(ES+D ...
- node js 常用模块
前100个依赖库里,underscore是属于语言基础类,express是服务器框架,有5.6个测试框架.以及5.6个递归遍历目录树的工具类.3个左右的命令行解析工具类,3个主流数据库的链接clien ...
- Node.js 手册查询-1-核心模块方法
Node.js 学习手册 标签(空格分隔): node.js 模块 核心模块 核心模块是被编译成二进制代码,引用的时候只需require表示符即可 os 系统基本信息 os模块可提供操作系统的一些基本 ...
- Node.js 常用工具 util
util 是一个Node.js 核心模块,提供常用函数的集合,用于弥补核心JavaScript 的功能 过于精简的不足. util.inherits util.inherits(constructor ...
- 《深入浅出Node.js》第2章 模块机制
@by Ruth92(转载请注明出处) 第2章 模块机制 JavaScript 先天缺乏的功能:模块. 一.CommonJS 规范: JavaScript 规范的缺陷:1)没有模块系统:2)标准库较少 ...
随机推荐
- Objective-C基础 便利构造器 单例模式1-17
Objective-C基础 便利构造器 单例模式1-17 便利构造器 单例模式 1.在声明时指定setter或getter方法,则用点运算符方法调用时默认调用的就是自己指定的方法2.单例:唯一性,如: ...
- 计算广义积分$$\int_0^{+\infty}\cos x^p {\rm d}x,\int_0^{+\infty}\sin x^p {\rm d}x, p>1$$
${\bf 解:}$ 在角状域$G=\{z\in\mathbb{C}|0<{\rm Arg}z<\frac{\pi}{2p}\}$上引入辅助函数$e^{iz^p}$, 其中$z^p=|z| ...
- JavaScript Application Architecture On The Road To 2015
JavaScript Application Architecture On The Road To 2015 I once told someone I was an architect. It’s ...
- codeforces D. Long Path
http://codeforces.com/contest/408/problem/D 题意:有一排房间每个房间有两扇门,一扇通往第i+1个房间,另一扇通往第p[i]个房间,(p[i]<=i)然 ...
- 大用处--PowerShell Management Library for Hyper-V.
http://pshyperv.codeplex.com/releases 用脚本来收集及集成HYPER-V管理. 越来越似KVM,LIBVIRT啦.
- Nodejs爬虫进阶教程之异步并发控制
Nodejs爬虫进阶教程之异步并发控制 之前写了个现在看来很不完美的小爬虫,很多地方没有处理好,比如说在知乎点开一个问题的时候,它的所有回答并不是全部加载好了的,当你拉到回答的尾部时,点击加载更多,回 ...
- The Embarrassed Cryptographer(高精度取模+同余模定理)
Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 11435 Accepted: 3040 Description The ...
- BZOJ1572: [Usaco2009 Open]工作安排Job
1572: [Usaco2009 Open]工作安排Job Time Limit: 10 Sec Memory Limit: 64 MBSubmit: 775 Solved: 337[Submit ...
- POJ-1151-Atlantis(线段树+扫描线+离散化)[矩形面积并]
题意:求矩形面积并 分析:使用线段树+扫描线...因为坐标是浮点数的,因此还需要离散化! 把矩形分成两条边,上边和下边,对横轴建树,然后从下到上扫描上去,用col表示该区间有多少个下边,sum代表该区 ...
- Android设备信息、感应器检测
近日产品已经上线,开始有时间来做自己的事情,于是就开始学习和巩固一些以前用过的或者学过的技术.昨天写了一个检测Android设备的序列号和IMEI以及感应器等等的一个Demo来跟大家分享一下. 在开发 ...