/*
* 一 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常用的几个模块总结的更多相关文章

  1. Node.js 常用工具

    Node.js 常用工具 util 是一个Node.js 核心模块,提供常用函数的集合,用于弥补核心JavaScript 的功能 过于精简的不足. util.inherits util.inherit ...

  2. Node.js 常用工具util包

    Node.js 常用工具 util 是一个Node.js 核心模块,提供常用函数的集合,用于弥补核心JavaScript 的功能 过于精简的不足. util.isError(obj); util.is ...

  3. [Node.js与数据库]node-mysql 模块介绍

    [Node.js与数据库]node-mysql 模块介绍   转载至:https://itbilu.com/nodejs/npm/NyPG8LhlW.html#multiple-statement-q ...

  4. Node.js进程管理之Process模块

    在前面Node.js事件运行机制也有提到,Node.js应用在单个线程运行,但是现在大部分服务器都是多处理器,为了方便使用多个进程,Node.js提供了3个模块.Process模块提供了访问正在运行的 ...

  5. node.js(二)各种模块

    我们知道Node.js适合于IO密集型应用,不适合于CPU密集型应用.    JS和Node.js区别:         JS运行于客户端浏览器中,存在兼容性问题:数据类型:值类型+引用类型(ES+D ...

  6. node js 常用模块

    前100个依赖库里,underscore是属于语言基础类,express是服务器框架,有5.6个测试框架.以及5.6个递归遍历目录树的工具类.3个左右的命令行解析工具类,3个主流数据库的链接clien ...

  7. Node.js 手册查询-1-核心模块方法

    Node.js 学习手册 标签(空格分隔): node.js 模块 核心模块 核心模块是被编译成二进制代码,引用的时候只需require表示符即可 os 系统基本信息 os模块可提供操作系统的一些基本 ...

  8. Node.js 常用工具 util

    util 是一个Node.js 核心模块,提供常用函数的集合,用于弥补核心JavaScript 的功能 过于精简的不足. util.inherits util.inherits(constructor ...

  9. 《深入浅出Node.js》第2章 模块机制

    @by Ruth92(转载请注明出处) 第2章 模块机制 JavaScript 先天缺乏的功能:模块. 一.CommonJS 规范: JavaScript 规范的缺陷:1)没有模块系统:2)标准库较少 ...

随机推荐

  1. spring mvc ModelAndView 404的原因

    在使用ModelAndView时不要导入 import org.springframework.web.portlet.ModelAndView; 而要导入以下这个包 import org.sprin ...

  2. eclipse 比较好的插件

    tomcat 插件 egit github 插件 subeclipse 插件 Properties Editor Properties Editor 编辑java的属性文件,并可以自动存盘为Unico ...

  3. Java中的自动拆箱装箱(Autoboxing&Unboxing)

    一.基本类型打包器 1.基本类型:long.int.double.float.boolean 2.类类型:Long.Integer.Double.Float.Boolean 区别:基本类型效率更高,类 ...

  4. 转:PHP开发者应了解的24个库

    原文来自于:http://blog.jobbole.com/54201/ 作为一个PHP开发者,现在是一个令人激动的时刻.每天有许许多多有用的库分发出来,在Github上很容易发现和使用这些库.下面是 ...

  5. ha666_go运行环境配置

    项目地址:http://git.oschina.net/ha666/ha666_go 服务器配置: CPU: 1核 内存: 1024 MB 操作系统: CentOS 7.0 64位 内网IP: 10. ...

  6. cf B Bear and Strings

    题意:给你一个字符串,然后找多少区间内含有“bear”,输出数目: #include <cstdio> #include <cstring> #include <algo ...

  7. iOS 颜色选择器 仿ps 调色板

    前几天写东西,需要到调色板,自己网上搜了一下,好多都写得很麻烦,自己手敲了一个,使用很简单,飞虎不多说,上图,上代码,上使用教程,希望大家喜欢,(基于xcode7.0版本) 最后更新于15/12/14 ...

  8. Java super与this用法解析

    1.     子类的构造函数如果要引用super的话,必须把super放在函数的首位. class Base { Base() { System.out.println("Base" ...

  9. bzoj2818

    我们先穷举素数p然后令y>x 这样问题就是求这个gcd(x,y)=p  (1<=x<y=n)不难发现必须y=kp k∈N* 当y=p时,易知个数为φ(1)当y=2p 个数为φ(2), ...

  10. Light OJ 1017 - Brush (III)

    题目大意:     在一个二维平面上有N个点,散落在这个平面上.现在要清理这些点.有一个刷子刷子的宽度是w. 刷子上连着一根绳子,刷子可以水平的移动(在X轴方向上).他可以把刷子放在任何一个地方然后开 ...