/*
* 一 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. C语言学习笔记(二):指针的用法

    与其说指针是一种工具,不如先说指针是一种数据类型. -------------------------------------------------------------华丽的分割线------- ...

  2. SignalR实现B/S系统对windows服务运行状态的监测

    基于SignalR实现B/S系统对windows服务运行状态的监测 通常来讲一个BS项目肯定不止单独的一个BS应用,可能涉及到很多后台服务来支持BS的运行,特别是针对耗时较长的某些任务来说,Windo ...

  3. js实现

    1,核心 ECMAScript 2,文档对象模型DOM 3,浏览器对象模型BOM

  4. 45 Useful JavaScript Tips, Tricks and Best Practices(有用的JavaScript技巧,技巧和最佳实践)

    As you know, JavaScript is the number one programming language in the world, the language of the web ...

  5. PhpStorm常用快捷键大全

    常用快捷键(keymaps:Default情况下)注意:部分快捷键,必须在没有更改快捷键的情况下才可以使用 功能键Esc键 返回编辑器窗口F1 打开在线帮助F2 (Shift+F2) 下/上高亮错误或 ...

  6. java 动态代理深度学习(Proxy,InvocationHandler),含$Proxy0源码

    java 动态代理深度学习, 一.相关类及其方法: java.lang.reflect.Proxy,Proxy 提供用于创建动态代理类和实例的静态方法.newProxyInstance()返回一个指定 ...

  7. org.springframework.web.context.ContextLoaderListener

    ContextLoaderListener的作用就是启动Web容器时,自动装配ApplicationContext的配置信息.因为它实现了ServletContextListener这个接口,在web ...

  8. PlatformTransactionManager

    Spring Boot 使用事务非常简单,首先使用注解 @EnableTransactionManagement 开启事务支持后,然后在访问数据库的Service方法上添加注解 @Transactio ...

  9. (转载)php flush()刷新不能输出缓冲的原因分析

    (转载)http://www.webkaka.com/tutorial/php/2012/110628/ 在php程序编写中,flush()的使用率还是挺高的,它在网页表现即时信息效果时发挥了极为重要 ...

  10. [转载][HTML] 普通的DIV分层以及版透明效果

    来源忘记哪的了,我稍微做了点修改,想了想还是挂了转载的标签,嗯嗯: <html> <head> <title>EXAMPLE</title> </ ...