JavaScript~ nodejs模块化 commonjs (后端模块化语法)

97 阅读3分钟

nodejs 的模块化开发方式

nodejs

nodejs 是基于 Chrome V8 浏览器引擎JavaScript 运行环境 也就是 使用 浏览器引擎 独立运行js程序 nodejs 天生就是异步程序

nodejs 可以执行 ECMAScript I/O线程操作 操作文本文件 不能执行 DOM BOm

nodejs运行方式

cmd

vscode终端

window自带的powerShell

nodejs运行 JavaScript 方式

方式1

                    命令行 输入 node 回车
                    进入 nodejs 编辑环境

                    ctrl+c 输入两次推出

方式2

                    切换路径到 要运行的外部js文件所在的文件夹

                    命令行 输入 node 文件名 回车
                    

浏览器运行js 和 nodejs运行js 的区别

浏览器运行js

        可以执行的操作
            ECMAScript  js的基本语法 
            DOM         操作html文档的方法
            BOM         操作浏览器的方法

        不能做
           I/O线程操作  操作本地文件 --- 操作数据库

nodejs运行

    可以执行的操作
        ECMAScript  js的基本语法 
        I/O线程操作  操作本地文件 --- 操作数据库
        I/O 线程操作 
                input   output
                输入    输出

                最早的输入输出 指的是 对计算机输入命令 计算机返回执行结果
                现在的输入输出 指的是 操作电脑的本地文件
    

    不能做
        DOM         不能操作html文档
        BOM         不能操作浏览器

基本语法

导出

module.exports = {}; 以一个对象整体的形式导出数据

module.exports.属性 = 属性值; 以对象的属性属性值 新增单元的形式 导出数据

导入

const 变量 = require('路径'); 将导入的文件中 导出的数据 存储到变量中

const 变量 = require('模块名称');内置模块 第三方模块名称

模块化开发方式

自定义模块

我们程序员自己设定的node.js 开发程序

内置模块

nodejs 自己设定好的开发程序, 我们只需要导入使用就可以了

   `内置模块导入` 只需要设定模块名称 `const 变量 = require('模块名称');`

第三方模块

其他程序员设定好的模块 我们需要先下载第三方板块 再导入使用 第三方模块

模块化文件1 a.js

//设定数据函数方法
let name = '张三';
let age = 18;
let sex = '男';

const arr = [100, 200, 300, 400];
const obj = {addr: '北京', phone: 123456, email: '123@163.com'};

function fa1(){};
function fa2(){};
function fa3(){};
function fa4(){};

//只是node.js 模块化开发 语法 以对象的形式导出 指定的数据
//以一个对象的整体形式 导出数据
module.exports = {age, sex, arr, obj, fa1, fa2, fa3, fa4};

//以对象的属性属性值 新增单元的形式 导出数据
module.exports.name = name;

文件2

//需要导入a.js 导出的数据
//将 a.js文件中导出的数据 存储到变量valA 中
const valA = require('./a.js');
console.log(valA);
//导出结果
{
  age: 18,
  sex: '男',
  arr: [ 100, 200, 300, 400 ],
  obj: { addr: '北京', phone: 123456, email: '123@qq.com' },
  fa1: [Function: fa1],
  fa2: [Function: fa2],
  fa3: [Function: fa3],
  fa4: [Function: fa4],
  name: '张三'
}