美文网首页
Node.js模块系统

Node.js模块系统

作者: YAOBINGGT | 来源:发表于2020-05-26 15:32 被阅读0次

    一、什么是模块系统

    为了让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模块

    相关文章

      网友评论

          本文标题:Node.js模块系统

          本文链接:https://www.haomeiwen.com/subject/wxtvahtx.html