NodeJs-模块与包

1.介绍

NodeJs是用javaScript作为后端服务器的编程语言。

javaScript是一款客户端脚本语言,它的运行环境是基于客户端的,也就是浏览器,NodeJs的由来是将javaScript脱离浏览器的执行环境,使用Google Chrome开源浏览器JavaScript V8引擎为基础搭建了一个新的javaScript执行环境,并且在v8引擎上添加了服务器编程语言该有的功能,如文件系统、模块、包、操作系统api、网络通讯等。

NodeJs = JavaScript执行环境+JavaScript扩展的功能。
简单理解NodeJs就是一个可以让JavaScript脱离浏览器还能执行的平台,并且这个平台对JavaScript功能进行了增强。

2.Js与NodeJs区别
  1. 构成区别:

    Js:由ECMAScript引擎、Bom、Dom构成

    NodeJs:由ECMAScript引擎与拓展功能(文件系统、模块、包、操作系统api、网络通讯)构成

  2. 职责区别:

    Js:运行在浏览器客户端中,只要有ECMAScript引擎就能运行,各个浏览器的执行引擎不一样,主要负责操作Bom、Dom

    NodeJs:独立的平台,具有服务端语言处理能力,处理网络请求,保存数据到数据库等

3.CommonJs规范

CommonJS API:不是一个语言,也不是一个平台,它只是一个标准(规范)。 它定义的标准主要是对ECMAScript标准API进行增强。目标是提供一个类似Python,Ruby和Java标准库。这样的话,开发者可以使用CommonJS API编写应用程序,然后这些应用可以运行在不同的ECMAScript解释器和不同的主机环境中。

NodeJS是这种规范的实现。

4.NodeJs模块

模块:一个具有特定功能的文件就是一个模块,模块之间可能存在一定的依赖关系,使用模块可以很好的把这些依赖关系整合起来。

模块规范:AMD、CMD、CommonJs(NodeJs)

AMD:AMD (Asynchronous Module Definition=异步模块定义),这种规范是异步的加载模块,requirejs应用了这一规范,适合客户端浏览器环境。

	define( id?, dependencies?, factory );    
    第一个参数 id 为字符串类型,表示了模块标识,为可选参数。若不存在则模块标识应该默认定义为在加载器中被请求脚本的标识。如果存在,那么模块标识必须为顶层的或者一个绝对的标识。
    第二个参数,dependencies ,是一个当前模块依赖的,已被模块定义的模块标识的数组字面量。
    第三个参数,factory,是一个需要进行实例化的函数或者一个对象。

CMD:CMD (Common Module Definition), 是seajs推崇的规范,国内大牛玉伯之作。

define(factory);
factory,是一个需要进行实例化的函数或者一个对象。

CommonJS:是诞生比较早的。NodeJS就采用了CommonJS的规范来定义模块。但是CommonJs采用的是同步加载文件方式,只适用于服务端(NodeJs平台)

4.1.模块特点

1、模块中使用var定义变量都是局部变量。
2、模块定义在函数,也是局部。
3、模块有一个模块对象。包含moduleId(模块名)、exports(导出对象)
4、如果模块中需要暴露方法或属性给外部使用,那么就执行往exports对象上面添加。
5、使用一个模块用require(“moduleId”),该方法返回的是模块对象的exports对象。

4.2.自定义模块
  • 新建js文件,编写js代码,并使用关键字exports导出对象,输出模块中的功能供外部使用
var getSum = function (a, b) {
   
    console.log(a 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值