本期教程主要针对nodejs初学入门后,使用前端工程化操作技巧中常用的cjs开发模式,对模块的多值操作进行讲解。
1、了解项目情况
项目结构:
当前目录: D:MyProjectsnodejshello 文件: myexport.py 文件: package.json 文件夹: src/ ----文件夹: cjs/ --------文件: index.cjs --------文件: module.cjs
准备文件:module.js
function bcczcs(){ console.log('ljybc,bcczcs') } const ljy="ljybc" module.exports={ bcczcs, ljy }
准备文件:index.cjs
const m=require("./module.cjs") //导入模块默认值 console.log(m)
运行项目:
命令行 D:MyProjectsnodejshello>npm run dev:cjs 控制台输出: > hello@1.0.0 dev:cjs > node src/cjs/index.cjs { bcczcs: [Function: bcczcs], ljy: 'ljybc' }
2、观察输出结果
从这里我们可以看到控制台输出的结果是一个对象,可以通过键值对的方式来获取使用。
1)如果我们要调用函数bcczcs,那么可以使用:
m.bcczcs()调用函数的方式。
2)如果我们要使用变量ljy,那么可以使用:
m.ljy
3、调用模块内函数、调用模块内变量
在index.cjs文件下面添加如下:
m.bcczcs(); //调用函数bcczcs console.log(m.ljy); //使用模块内的变量ljy
运行项目:
命令行 D:MyProjectsnodejshello>npm run dev:cjs
控制台输出:
> hello@1.0.0 dev:cjs > node src/cjs/index.cjs { bcczcs: [Function: bcczcs], ljy: 'ljybc' } ljybc,bcczcs ljybc
4、多值导出时的变量的解构与调用
我们在导出模块中的多值变量的时候,有时候也可以使用es6的解构语法。
将index.cjs文件修改如下:
const {bcczcs,ljy}=require("./module.cjs") //导入模块的多个值,分别解构到左侧的两个变量中 bcczcs(); //调用函数bcczcs console.log(ljy); //使用模块内的变量ljy
运行命令行以后,也是可以正常输出变量的值的。
命令行:
D:MyProjectsnodejshello>npm run dev:cjs 控制台输出: > hello@1.0.0 dev:cjs > node src/cjs/index.cjs ljybc,bcczcs ljybc
5、多值导出时的重命名
修改index.cjs文件如下:
const { bcczcs:abc, //重命名导出变量的名称,防止变量名称冲突 ljy, }=require("./module.cjs") //导入模块的多个值,分别解构到左侧的两个变量中 const bcczcs=666; //变量赋值,该变量与导出的变量名称相同 console.log(bcczcs); //输出该文件变量 abc(); //调用函数bcczcs console.log(ljy); //使用模块内的变量ljy
命令行运行情况:
命令行 D:MyProjectsnodejshello>npm run dev:cjs 控制台输出: > hello@1.0.0 dev:cjs > node src/cjs/index.cjs 666 ljybc,bcczcs ljybc