node模块化开发基本知识学习笔记
传统非模块化开发缺点:
1、命名冲突
2、文件依赖
标准的模块化规范:
1、AMD-requirejs
2、CMD-seajs
服务器端模块化规范:
1.CommonJS-Node.js
模块化相关的规则:
1、如何定义模块:一个Js文件就是一个模块,模块内部成员相互独立
2、模块成员的导出和引入
nodejs模块化示例:
1.方式1
所需模块0.js
//定义模块成员
var sum = function(a,b){
return parseInt(a)+parseInt(b)
}
//导出模块成员
exports.sum = sum
引入模块1.js
//引入模块
var module = require('./0.js')
//使用模块成员
var ret = module.sum(12,13);
console.log(ret);
2.方式2
所需模块0.js
//定义模块成员
var sum = function(a,b){
return parseInt(a)+parseInt(b)
}
//导出模块成员
//exports.sum = sum
//导出成员的另一种方式
module.exports = sum
引入模块1.js
//引入模块
var module = require('./0.js')
//使用模块成员
// var ret = module.sum(12,13);
// console.log(ret);
var ret = module(12,15)
console.log(ret)
3.方式3
所需模块0.js
//定义模块成员
var sum = function(a,b){
return parseInt(a)+parseInt(b)
}
//导出模块成员
global.flag = sum
引入模块1.js
//引入模块
//var module = require('./0.js')
//使用模块成员
// var ret = module.sum(12,13);
// console.log(ret);
//不用引入模块,直接调用全局模块
var ret = global.flag(,)
console.log(ret)
4.规则
1.已经加载的模块会缓存,不会重复加载
2.后缀可省略,不同后缀优先级不同,顺序为.js>.json>.node
node模块化开发基本知识学习笔记的更多相关文章
- 《疯狂前端开发讲义jQuery+Angular+Bootstrap前端开发实践》学习笔记
<疯狂前端开发讲义jQuery+Angular+Bootstrap前端开发实践>学习笔记 二〇一九年二月十三日星期三2时28分54秒 前提:本书适合有初步HTML.CSS.JavaScri ...
- Objective-c基础知识学习笔记
Objective-c基础知识学习笔记(一) 一直有记录笔记的习惯.但非常久没分享一些东西了,正好上半年開始学习IOS了,如今有空写点.因开发须要,公司特意为我们配置了几台新MAC.还让我们自学了2周 ...
- MySQL索引知识学习笔记
目录 一.索引的概念 二.索引分类 三.索引用法 四 .索引架构简介 五.索引适用的情况 六.索引不适用的情况 继我的上篇博客:Oracle索引知识学习笔记,再记录一篇MySQL的索引知识学习笔记,本 ...
- lua游戏开发实践指南学习笔记1
本文是依据lua游戏开发实践指南做的一些学习笔记,仅用于继续自己学习的一些知识. Lua基础 1. 语言定义: 在lua语言中,标识符有非常大的灵活性(变量和函数名),只是用户不呢个以数字作为起始符 ...
- ASP.Net开发基础温故知新学习笔记
申明:本文是学习2014版ASP.Net视频教程的学习笔记,仅供本人复习之用,也没有发布到博客园首页. 一.一般处理程序基础 (1)表单提交注意点: ①GET通过URL,POST通过报文体: ②需在H ...
- Python 开发与接口测试学习笔记
这是我跟着虫师学习中积累下来的学习笔记,写得比较简单,适合想学习Python开发与接口测试的初学者学习. 一.开发投票系统 1.参考官网文档,创建投票系统. https://docs.djangopr ...
- Windows驱动开发工具 WDK 学习笔记(1)
目标:能够把电脑当作一个集成有高性能处理器的开发板用起来,当然,还自带了一个高级的操作系统Windows(必须的).总之,就是在一个带了操作系统的高性能开发板上的驱动程序开发. 性质:纯属业余爱好 1 ...
- 【VS开发】VSTO 学习笔记(十)Office 2010 Ribbon开发
微软的Office系列办公套件从Office 2007开始首次引入了Ribbon导航菜单模式,其将一系列相关的功能集成在一个个Ribbon中,便于集中管理.操作.这种Ribbon是高度可定制的,用户可 ...
- PHP 开发 APP 接口 学习笔记与总结 - Redis 缓存
Redis 可以定期将数据备份到磁盘中(持久化),同时不仅仅支持简单的key/value 类型的数据,同时还提供list,set,hash等数据结构的存储:Memcache 只是简单的key/valu ...
随机推荐
- C# list中ConvertAll的使用
static double TakeSquareRoot(int x) { //return Math.Sqrt(x); ; } static void Main(string[] args) { L ...
- Struts(五)
前端和后端验证 1.前端:用户体验 2.保证程序的安全性 ================================验证框架========================== ...
- .windows模拟linux命令iostat的显示
脚本如下: #!/usr/bin/env python #coding:utf- import win32com.client import time def disk_status(): try: ...
- Spring注入bean的方式
在Spring容器中为一个bean配置依赖注入有三种方式: · 使用属性的setter方法注入 这是最常用的方式: · 使用构造器注入: · 使用Filed注入(用于注解方式). 使用属性的se ...
- [Python源码剖析]字符缓冲池intern机制
static PyStringObject *characters[UCHAR_MAX + 1]; ... /* This dictionary holds all interned strings. ...
- HDU 6274 Master of Sequence (暴力+下整除)
题意 两个1e5的数组a,b,定义\(S(t)=\left \lfloor \frac{t-b_i}{a_i} \right \rfloor\),有三个操作 1 x y:将\(a[x]\)变为\(y\ ...
- 使用GitHub+Travis-CI+Docker打造自动化流水线
全文采用的是阿里云的ESC服务器,系统是CentOS 7 示例项目是NodeJS编写,本文主要是Docker的使用,在文章前2/3都是Docker命令介绍,最后我们会完成一个自动化的示例. 准备 注册 ...
- MySQL常用语法总结
一,学习mysql的前戏 1:基础入门命令 show databases: #查看当前MySQL中的所有数据库 create 数据库名: #创建新的数据库 use 数据库名: #使用该数据库 show ...
- CVE-2020-0618 SQL 远程代码执行
CVE-2020-0618 SQL Server远程代码执行 1.简介 SQL Server Reporting Services(SSRS)提供了一组本地工具和服务,用于创建,部署和管理移动报告和分 ...
- js位运算-按位非
正数 取得二进制表示 取反(发现符号位是1,表示负数) 符号位不变,其余位取反 取反后加一 负数 取得负数的二进制表示(即绝对值的二进制反码加一) 取反即可