Node.js模块系统

2020-05-26  本文已影响0人  YAOBINGGT

一、什么是模块系统

为了让Node.js的文件可以相互调用,Node.js提供了一个简单的模块系统。
模块是Node.js 应用程序的基本组成部分,文件和模块是一一对应的。换言之,一个 Node.js 文件就是一个模块,这个文件可能是JavaScript 代码、JSON 或者编译过的C/C++ 扩展。

1、Node核心模块(path,fs,http,ect)

const fs = requrie('fs')

2、通过npm下载的第三方模块或者安装包

const express = require('express')

3、自定义模块(文件)

const myFile = require('./myFile')

一个简单的模块创建引用demo

首先创建两个文件index.js、person.js

person.js

//创建一个自定义模块
//创建一个对象
const person = {
    name:'yaobinggt',
    age:28
}
//文件模块化
module.exports = person;

index.js

//引用模块 还要创建一个变量进行接收对象模块
const person = require('./person')
console.log(person.name);
//打印出来: yaobinggt

稍微复杂一点的模块创建引用

首先创建两个文件index.js、person.js

person.js

//创建person类
class Person{
    //创建一个构造函数
    constructor(name,age){
        this.name = name;
        this.age =age;
    }
    //创建一个方法
    greething(){
        console.log(`My name is ${this.name},age is ${this.age}`)
    }
}

//模块化
module.exports=Person;

index.js

//创建一个变量并引入自定义模块
const Person = require('./person');
//对象实例化
const person1 = new Person('IUU',2);
//调用方法
person1.greething();
//结果:My name is IUU,age is 2

__dirname 、 __filename

console.log(__dirname,__filename)
//结果D:\myCode\node\node_module D:\myCode\node\node_module\index.js

二、路径模块

path 模块提供了一些用于处理文件与目录的路径的实用工具。

//引入核心模块
const path =require('path');

//path.basename() 返回path的最后一部分
console.log(__filename); //结果: D:\myCode\node\node_module\reference\path_demo.js
console.log(path.basename(__filename)); //结果:path_demo.js 

//path.dirname() 返回path的目录名
console.log(path.dirname(__filename)); //结果: D:\myCode\node\node_module\reference

//path.extname() 返回文件的扩展名
console.log(path.extname(__filename)); //结果:.js

//path.parse()返回一个对象
console.log(path.parse(__filename));
//结果:
// {
//     root: 'D:\\',
//     dir: 'D:\\myCode\\node\\node_module\\reference',
//     base: 'path_demo.js',
//     ext: '.js',
//     name: 'path_demo'
//   }

//path.join() 串联路径
//../test/hello.html
console.log(path.join(__dirname,'test','hello.html')) //结果: D:\myCode\node\node_module\reference\test\hello.html

三、文件系统模块

fs 模块提供了用于与文件系统进行交互(以类似于标准 POSIX 函数的方式)的 API。
所有的文件系统操作都具有同步和异步的形式。

//引入模块
const fs = require('fs');
const path = require('path');

//fs.mkdir() 异步创建目录文件夹
fs.mkdir(path.join(__dirname,'/test'),{},(err)=>{
    if (err) throw err;
    console.log('文件夹创建成功...');
});

//fs,wirte() 异步写入创建文件
fs.writeFile(path.join(__dirname,'/test','hello.txt'),'hello yaobinggt',(err)=>{
    if(err) throw err;
    console.log('文件创建成功。。。');
    //fs,appendFile() 内容添加
    fs.appendFile(path.join(__dirname,'/test','hello.txt'),'I love UU',(err)=>{
        if(err) throw err;
        console.log('文件写入成功。。。');
    })

})

//fs.readFile() 读取文件
fs.readFile(path.join(__dirname,'/test','hello.txt'),'utf8',(err,data)=>{
    if(err) throw err;
    console.log(data);
})

//fs.rename() 文件夹重名
fs.rename(path.join(__dirname,'/test','hello.txt'),path.join(__dirname,'/test','yaobinggt.html'),err=>{
    if (err) throw err;
    console.log(`文件名修改成功`)
})

四、操作系统模块

//引入模块
const os =require('os');

//os.platform() 返回标示操作系统平台的字符串
console.log(os.platform());

//os.arch() 返回CPU架构信息
console.log(os.arch());

//os.cpus() 返回内核信息
console.log(os.cpus());

//os.freemem() 返回系统空闲内存(以字节为单位)
console.log(os.freemem());

//os.totalmem() 返回系统总内存(以字节为单位)
console.log(os.totalmem());

//os.homedir()返回用户的主目录的字符串路径
console.log(os.homedir())

//os.uptime() 返回系统的正常运行时间(以秒为单位)
console.log(os.uptime())

五、URL模块

六、事件模块

七、http模块

上一篇下一篇

猜你喜欢

热点阅读