2021-08-11

模块的分类:

内置模块 node官方提供的模块
自定义模块 开发人员定义的模块
第三方模块 由第三方开发,使用前需要下载安装。

模块作用域:
在自定义模块中的变量,函数,对象等成员,只能在当前模块中使用,这种模块级别的访问闲置,就叫做模块作用域。

自定义模块

在node下,每一个js文件中都有一个module对象,该对象下有一个exports属性。该属性默认是一个空对象

导出:
               module.exports.属性名 = 属性值
                module.exports = {
                   属性名:属性值
                 }
               exports.属性名 = 属性值;
导入:
              var 变量名 =  require("自定义模块的路径(.js可以省略不写)")      
              外界使用require方法导入自定义模块时,得到的就是module.exports 指向的对象。
module.exports 和 exports的区别

共同点: 都是用来导出成员的。
默认情况下,exports和module.exports指向的是同一个对象。
区别:
1.exports导出右边不能直接赋值一个对象。module.exports可以。
2.两者一起使用时,如果指向的对象不是同一个,以module.exports为准。
使用场景:
导出对象使用module.exports 导出多个方法和变量用exports。

【注意】 1.使用require引入模块时,会执行该模块下的代码。 2.模块是有缓存的,多次导入只会执行一次。

//05模块化.js   文件
var a = 10;
module.exports = {
        a,
        b: 20
    }
module.exports.c = 30;
//06.js文件
 var obj = require("./05模块化");
 console.log(obj);
 //返回值{ a: 10, b: 20, c: 30 }

//05模块化.js   文件
exports.a = 30;
exports.b = 20;
//06.js文件
var obj = require("./05模块化");
console.log(obj);
 //返回值 { a: 30, b: 20 }

//05模块化.js   文件
module.exports.c = 30;
exports = {
        a,
        b: 20
    }
//06.js文件
 var obj = require("./05模块化");
 console.log(obj);
 //返回值 { c: 30 }   (两者一起使用时,如果指向的对象不是同一个,以module.exports为准。)

//05模块化.js   文件
exports = {
        a,
        b: 20
    }
//06.js文件
var obj = require("./05模块化");
 console.log(obj);
 //返回值 {}    (exports导出右边不能直接赋值一个对象)

fs模块

概念:fs模块是node官方提供的,用于操作文件。它提供了一系列的属性和方法,用于满足用户对文件的操作需求。

内置模块引入格式:

const 变量 = require(“模块名”) 不成文的规范:模块名是什么,变量名就是什么, 使用之前,必须先引入模块。

const fs = require("fs");

readFile读取文件

格式: readFile(path,option,callback)
path:必选 读取的文件的路径
option:可选, 字符集 utf-8
callBack 读取之后的回调函数。 回调函数中有两个参数:err和data (变量名可以自己定义)

err:错误信息
data:读取到的信息

如果读取成功,err的值为null,
如果读取失败,err的值为错误信息对象。data为undefined。

fs.readFile("./nodeTest/a.txt","utf8",(err,data)=>{
  if (err) {
    console.log(err);
    return;
  }
  console.log(data);
})

writeFile写入文件

格式 writeFile(path,data,字符集,callBack)
path: 写入的文件的路径 如果写入的文件不存在,则会创建文件,前提是文件夹是存在的。
data: 要写入文件中的内容 会覆盖原来的所有内容。
字符集: utf-8
callBack 方法执行后的回调函数 回调函数只有一个参数 err 表示错误信息。

fs.writeFile("./node.Test/c.text", "111", "utf8", (err) => {
        if (err) {
            console.log(err);
            return;
        }
    })

appendFile追加内容

在原文件的基础上追加内容,使用appendFile方法,该方法的参数与使用方法与writeFile一模一样。

fs.appendFile("./node.Test/c.text", "hello,world", (err) => {
    if (err) {
        console.log(err);
        return;
    }
})

案例

结合读写文件的方法,将一个文件的内容copy到另一个文件中。
步骤:
1.引入fs模块
2.读取a.js的内容
3.把读取到的内容写入到b.js中。

const fs = require("fs");
fs.readFile("./nodeTest/a.js","utf8",(err,data)=>{
  if (err) {
    console.log(err);
    return;
  }
  fs.writeFile("./nodeTest/b.js",data,"utf8",(err)=>{
    if (err) {
      console.log(err);
      return;
    }
    console.log("复制成功!");
  })
})

unlink方法 删除文件

格式:
unlink(path,callBack)
path 要删除的文件的路径
callBack 执行之后的回调函数 err

const fs = require("fs");
fs.unlink("./nodeTest/b.js",(err)=>{
  if (err) {
     console.log(err);
    return;
 }
 })

mkdir 创建文件夹

格式:
mkdir(“文件夹路径”,回调函数) 回调函数如果出现错误,可以用err来接收。

fs.mkdir("./nodeTest/c",(err)=>{
  if (err) {
    console.log(err);
    return;
  }

rename 重命名

rename(需要重命名的文件路径,新的文件名,回调函数)

fs.rename("./nodeTest/a.js", "./nodeTest/abc.js", (err) => {
    if (err) {
        console.log(err);
        return;
    }
})
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值