node.js常用的几个模块总结

时间:2022-09-20 17:31:00

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

  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. Cannot find module formidable

    今天按照例子学习安装 formidable 即使我-g全局安装,也不行.. 于是搜到了这句话.. 解决了 我也遇到这个问题,困扰了我一天,现在找到解决办法了.我在看这篇入门教程:http://node ...

  2. Bootstrap警告框

    前面的话 在网站中,网页总是需要和用户一起做沟通与交流.特别是当用户操作上下文为用户提供一些有效的警示框,比如说告诉用户操作成功.操作错误.提示或者警告等.在Bootstrap框架有一个独立的组件,实 ...

  3. HTML5 classList API接口

    原文地址:HTML5 classList API 原文日期: 2010年07月13日 翻译日期: 2013年08月23日 当我陷入JavaScrip和JavaScript类库框架之中时,我总是有种希望 ...

  4. 使用nginx mirror 制作nexus 的简单ha

      主要是运行两台nexus 机器,通过nexus 的host 以及proxy 以及public 模型,结合nginx 的mirror 将对于host 的get 请求 mirror 到另一台机器pro ...

  5. GET和POST两种基本请求方法的区别(转)

    GET和POST是HTTP请求的两种基本方法,要说它们的区别,接触过WEB开发的人都能说出一二. 最直观的区别就是GET把参数包含在URL中,POST通过request body传递参数. 你可能自己 ...

  6. Excel技巧--实现交叉查询

    如上图,要实现某个地区和某个产品的销售额查询显示.可以使用Match和Index函数的使用来实现: 1.产品名称和城市栏,制作成列表可选:使用“数据”-->“数据验证”的方法. 2.先在旁边空位 ...

  7. 【转】PowerDesigner快捷键

    一般快捷键 快捷键 说明 F4 打开检查模型窗口,检查模型 F5 如果图窗口内的图改变过大小,恢复为原有大小即正常大小 F6 放大图窗口内的图 F7 缩小图窗口内的图 F8 在图窗口内中查看全部图内容 ...

  8. 「Vue」vue生命周期

    Vue的生命周期 beforeCreate---created---beforeMount---mounted---(beforeupdate---updated :数据有更新时才会执行)---bef ...

  9. SQL语句中的正则表达式

    正则表达式 REGEXP_LIKE执行正则表达式匹配 SELECT FIRST_NAME FROM EMPLOYEES WHERE REGEXP_LIKE(FIRST_NAME,'^al(an|yss ...

  10. UVa 10881 Piotr's Ants (等价变换)

    题意:一个长度为L的木棍上有n个蚂蚁,每只蚂蚁要么向左,要么向右,速度为1,当两只蚂蚁相撞时, 它们同时掉头.给定每只蚂蚁初始位置和朝向,问T秒后,每只蚂蚁的状态. 析:刚看到这个题时,一点思路也没有 ...