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 ...
随机推荐
- jsp路径
访问静态资源的时候${pageContext.request.Context}没有作用,在浏览器F12调试的时候发现,路径并没有被解释为项目的根路径,而是没有解释出来,还是${pageContext. ...
- Spring注解开发系列Ⅱ --- 组件注册(下)
1.@Import注册组件 @Import主要功能是通过导入的方式实现把实例加入springIOC容器中, /** * 给容器注册组件 * 1.包扫描+组件标注注解(@Controller,@Serv ...
- tmobst5an
1.(单选题)SQL语言又称为() A)结构化定义语言 B)结构化控制语言 C)结构化查询语言 D)结构化操纵语言 解析:SQL语言又称为结构化查询语言 2.(单选题)只有满足联接条件的记录才包含在查 ...
- HDU_1035_水
http://acm.xidian.edu.cn/problem.php?id=1035 本来想用goto优化一下的,不知道什么情况,加了goto就wa了. #include<iostream& ...
- char *p=new char[n] delete[] p出错
上面不delete不出错然后下面单个输入出现乱码
- ARTS Week 10
Dec 30, 2019 ~ Jan 5, 2020 Algorithm Problem 88 Merge Sorted Array (合并两个有序数组) 题目链接 题目描述:给定两个有序数组 num ...
- (二)Mybatis动态sql
首先动态sql简单来讲就是可以根据传入参数的不同来动态的生成sql语句,拼接where语句,这样你就不用写很多个sql语句了,并且它里面有一些特性也可以帮助你避免sql语句的拼接错误,主要分为4个: ...
- centos6.5下oracle11g下OGG单向复制
命名规范: local==> l remote==> r extract==> x data pump==> p ------------------------------- ...
- layui表格增删改查与上传图片+Api
API 控制器1 主要用于增删改查已经反填数据查询 using System; using System.Collections.Generic; using System.Data.SqlClie ...
- win10系统下安装JDK1.8及配置环境变量的方法
本次演示基于windows10操作系统,如果你是linux,请参考:https://www.yn2333.com/archives/linux上安装JDK8 1:下载安装包 地址:https://ww ...