Node六-模块化
Node实现CommonJS规范
-因此node可以使用模块化的方式组织代码结构
简单命令行加减运算
-代码

命令行执行

V8对es6的支持
-直接支持:const、模版字符串等。
-严格模式支持:let等
-根本不支持

模块化代码结构
-Node采用的模块化结构是按照 CommonsJS规范
-模块与文件是一一对应关系,即加载一个模块,实际上就是加载对应的一个模块系统。
将上述代码进行模块化
-将计算逻辑提取
-修改代码,使用模块化

-node里面可以使用模块化
-node模块化使用commonjs,不用define
-es6自动属性
模块的分类
-文件模块
--就是我们自己写的功能块文件
-核心模块
--node平台自带的一套基本的功能模块>node平台的API
-第三方模块
--社区或第三方个人开发的功能模块,可以直接拿回来用
模块化开发的流程
-创建模块>new demo.js
-导出成员>module.exports = {}
-载入模块>car demo = require()
-使用模块>demo.method()
模块内全局对象
-我们在之后的文件操作中必须使用绝对路径
-__dirname
--用于获取当前文件所在目录的完整路径
--在REPL环境无效
-__filename
--用来获取当前文件的完整路径
--在REPL环境同样无效
-dirname、filename因为在REPL环境中无效,因此认为其是伪全局对象

模块内部私有空间
-不导出,外界就不能访问,不会污染全局

模块的定义
-一个新的JSwe文件就是一个模块
-一个合格的模块应该是有导出成员的,否则模块就失去了定义的价值
-模块内部是一个独立(封闭)的作用域>模块与模块之间不会冲突
-模块之间必须通过导出或导入的方式协同
-导出方式
--exports.name = value;
--module.exprots = {};
Node六-模块化的更多相关文章
- Node.js模块化教程
Node.js模块化教程 下载安装node.js 创建项目结构 |-modules |-module1.js |-module2.js |-module3.js|-app.js|-package.js ...
- Node.js 模块化你所需要知道的事
一.前言 我们知道,Node.js是基于CommonJS规范进行模块化管理的,模块化是面对复杂的业务场景不可或缺的工具,或许你经常使用它,但却从没有系统的了解过,所以今天我们来聊一聊Node.js模块 ...
- node.js 模块化
模块是编写稍大一点点的程序 一般就会将代码模块化 在node.js中每一个文件就是一个模块,而文件路径就是模块名 怎么使用模块? 在编写某个模块是都有三个预先定义(require,exports,mo ...
- 鼓捣phantomjs(二) node.js模块化集成
著作权所有:http://www.cnblogs.com/zeusro/ 引用(爬虫)不给稿费的,切你jj 追忆似屎年华 在上一篇post(http://www.cnblogs.com/zeusro/ ...
- Slickflow.NET 开源工作流引擎基础介绍(六)--模块化架构设计和实践
前言:在集成Slickflow.NET 引擎组件过程中,引擎组件需要将用户,角色等资源数据读取进来,供引擎内部调用:而企业客户都是有自己的组织架构模型,在引入模块化架构设计后,引擎组件的集成性更加友好 ...
- 微信小程序笔记<六>模块化 —— module.exports
微信小程序中所有 js 文件作用域皆为独立的,每一个 js 文件即为一个模块.模块与模块之间的引用通过 module.exports 或 exports 对外暴露接口. 注意: exports 是 m ...
- node.js模块化写法入门
子模块的写法: function SVN(){ console.log('svn initialized'); return this; } function getInstance() { cons ...
- node服务器端模块化-commomjs
modele.js getmodule.js 用exports 返回的是一个对象中的每个属性
- ES6和node的模块化
ES6 模块的设计思想是尽量的静态化,使得编译时就能确定模块的依赖关系,以及输入和输出的变量.CommonJS 和 AMD 模块,都只能在运行时确定这些东西.比如,CommonJS 模块就是对象,输入 ...
随机推荐
- JAVA之旅(十六)——String类,String常用方法,获取,判断,转换,替换,切割,子串,大小写转换,去除空格,比较
JAVA之旅(十六)--String类,String常用方法,获取,判断,转换,替换,切割,子串,大小写转换,去除空格,比较 过节耽误了几天,我们继续JAVA之旅 一.String概述 String时 ...
- c++中各个数据类型的大小
来哦金额各种数据类型有助于我们对这门语言的更好掌握,更好的利用之来编程,下面是一个简单的获得数据类型的大小的程序,虽然简单,但实用性却很高. #include <iostream> usi ...
- 详解ebs接口之客户配置文件导入(二)
------------------------------------ -- 1a. Setup the Org_id ------------------------------------ ex ...
- Leetcode_171_Excel Sheet Column Number
本文是在学习中的总结,欢迎转载但请注明出处:http://blog.csdn.net/pistolove/article/details/42290079 Given a column title a ...
- hadoop上C++开发两种方式的例子
百度在使用Hadoop过程中同样发现了Hadoop因为Java语言带来的低效问题,并对Hadoop进行扩展. 而在此之前,百度也尝试了 Hadoop PIPES 和 Hadoop Streamming ...
- Zigbee技术开发一 设置NV_RESTORE
需要试验一下设置NV_RESTORE之后,终端设备的处理逻辑,在IAR里面设置NV_RESTORE的地方如下
- startService与bindService的区别
转自:http://www.devdiv.com/thread-52226-1-1.html Service的生命周期方法比Activity少一些,只有onCreate, onStart, onDes ...
- 《java入门第一季》之面向对象(final关键字)
/* final可以修饰类,方法,变量 特点: final(可以修饰类),该(类)(不能被继承).一旦修饰了一个类,这个类就不能被继承了! final以修饰方法,该方法可以被继承但是不能被重写.(覆盖 ...
- Android群英传笔记——第一章:Android体系与系统架构
Android群英传笔记--第一章:Android体系与系统架构 图片都是摘抄自网络 今天确实挺忙的,不过把第一章的笔记做一下还是可以的,嘿嘿 1.1 Google的生态圈 还是得从Android的起 ...
- Gradle 1.12用户指南翻译——第三十九章. IDEA 插件
本文由CSDN博客万一博主翻译,其他章节的翻译请参见: http://blog.csdn.net/column/details/gradle-translation.html 翻译项目请关注Githu ...