node模块化

nodejs有三种类型的模块:

1.内置模块(由官方提供,例如 fs,path,http)

const fs = require('fs')
const path = require('path')
//可以直接使用

2.自定义模块(用户自定义,一个js文件中引入另外一个js文件)

//向多模块共享作用域中的成员
//方法一
module.exports.name = 'zhangsan'
//方法二
exports.name = 'lisi'
//导入  使用require()方法加载模块时,会执行被加载模块中的代码
const moment = require('./XXX/XX')   //此处输入需要引入的js的路径
const dt = moment().format('YYYY-MM-DD HH:mm:ss')

3.第三方模块(也就是包,需要先下载)
npm包:第三方模块(都是免费开源的,是基于内置模块封装出来的)
在安装node.js的时候已经安装了npm包,所以可以直接在命令行中输入npm -v可以查看安装的npm版本
语义化版本规范: 例如 2.24.1
第一位数字:大版本
第二位数字:功能版本
第三为数字:Bug修复版本

//装包命令
npm i 包名称  //简写        //npm install 包名称     
//安装指定版本的包
npm i 包名称@版本号
//新建一个paclcage.json配置文件
npm init -y
//卸载包
npm uninstanll 包名称

模块化:为了解决js文件之间不确定的依赖关系,防止变量污染

commonJS规范

1.commonjs规范下的模块调用是同步的:必须等模块加载完成之后,接下来的代码才能继续运行。所以,该规范主要适用于服务端。因为服务端可以直接从硬盘中调用所需要的模块,这个过程很快。但是客户端如果一个模块过大就会导致页面假死。

2.主要是node,微信小程序在用

3.一个文件就是一个模块,拥有独立作用域

4.提供require引入模块,export导出模块属性方法。exports代表模块本身

5.一个js文件要输出去,只需使用module.export={xxx:你要输出的内容},而在另外一个js中,你要引用什么,就通过var xxxx=require("xxxx")引用进来就行了

6.模块可以多次加载,但是只会在第一次加载时运行一次,然后运行结果就被缓存了,以后再加载,就直接读取缓存结果。要想让模块再次运行,必须清除缓存。(当使用require命令加载同一个模块时,不会再执行该模块,而是取到缓存之中的值。也就是说,CommonJS模块无论加载多少次,都只会在第一次加载时运行一次,以后再加载,就返回第一次运行的结果,除非手动清除系统缓存。)

js中的模块有共性,模块的功能代码都是在一个函数中:

模块中使用var定义变量都是局部变量
模块定义在函数,也是局部
模块有一个模块对象,包括module(模块名),exports(导出对象)
如果模块需要暴露方法或属性给外部使用,那么就执行往exports对象上添加
使用一个模块用require(“module”),该方法返回的是模块对象的exports对象,
var a =require("./a.js");

  • 4
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值