服务器端的JSer是幸运的,它有NodeJS,NodeJS遵循了一个称为CommonJS的规范。CommonJS其中就有对写模块的标准化。当然模块化只是其中的一部分而已。具体来说NodeJS实现了
模块化方面它实现了Modules/1.0(已经更新到
1.1.1
)。
以下是node中是写模块的一个示例。
math.js
文件
exports.add = function() {
var sum = 0, i = 0, args = arguments, l = args.length;
while (i < l) {
sum += args[i++];
}
return sum;
};
increment.js
var add = require('math').add;
exports.increment = function(val) {
return add(val, 1);
};
main.js
文件,该文件为入口文件
var inc = require('increment').increment;
var a = 1;
inc(a); // 2
这就写了一个math、increment、main模块。math提供了add方法来实现数字相加。increment模块依赖于math模块,它提供increment方法实现相加。main获取到increment方法,执行相加操作。
我们看到
1,node要求一个js文件对应一个模块。可以把该文件想象成一个匿名函数,所有代码都在匿名函数中,其它模块不可访问除exports外的私有变量。
2,使用exports导出API。
3,使用require加载其它模块。
CommonJS module基本要求如下
2,require方法返回指定的模块API。
3,如果存在依赖的其它模块,那么依次加载。
4,require不能返回,则抛异常。
5,仅能使用标示符exports导出API。
Modules/1.1较1.0仅增加了标示符module,require函数增加了main和paths属性。而仔细比对1.1与1.1.1后发现除了格式调整了下几乎没有变化。
相关:
Modules
Modules/1.0
Modules/1.1
Modules/1.1.1
下一篇:NodeJS模块格式在浏览器中的尝试
分享到:
相关推荐
模块化编程是现代软件开发的基础之一,尤其是在JavaScript这种广泛应用于Web开发的语言中尤为重要。模块化的关键在于它允许开发者将复杂的程序拆分成更小、更可管理的部分。这些部分通常被称为“模块”,每个模块...
在JavaScript中,模块化可以通过以下几种方式实现: 1. CommonJS:CommonJS 是一种在Node.js环境中广泛使用的模块化规范,通过`require`函数引入模块,`module.exports`或`exports`导出模块。它允许同步加载模块,...
总的来说,Node.js 利用 JavaScript 为开发者提供了一种全新的服务器端编程体验,结合其模块化、事件驱动和非阻塞 I/O 的特性,使得开发高性能网络应用变得简单而高效。无论是构建实时通信应用、API 服务还是静态...
CommonJS 是服务器端JavaScript模块化的一个标准,允许开发者通过`require()`函数引入模块,并通过`module.exports`或`exports`导出模块。SeaJS虽然在浏览器环境中使用,但其设计思路和API很大程度上借鉴了CommonJS...
Gia是一个专为服务器端渲染(Server-Side Rendering, SSR)设计的简约JavaScript框架,它致力于简化Web应用程序的构建过程,提高网页的加载速度和SEO性能。在当前的Web开发环境中,SSR变得越来越重要,因为它能提供...
CommonJS常用于服务器端,通过`require()`函数加载模块,而ES6模块则在浏览器和现代Node.js环境中使用,使用`import`和`export`关键字进行模块间的交互。 此外,JavaScript还包含一些重要的内置模块,例如: 1. `...
在实际开发中,还可以使用AMD(异步模块定义)或CommonJS(服务器端模块系统)等模块系统,如RequireJS和Node.js的`require`。这些系统提供了更高级的模块管理和加载机制,支持模块间的依赖关系和异步加载,适用于...
CommonJS是最早提出的模块化规范之一,旨在统一服务器端和浏览器端的模块化标准,其核心思想是使用`require`函数来引入模块,并通过`module.exports`或`exports`导出模块内容。 AMD(Asynchronous Module ...
在当今的Web开发领域,JavaScript不再仅仅局限于浏览器中的客户端编程,而是通过Node.js拓展到了服务器端。Node.js是一个开放源代码、跨平台的JavaScript运行环境,它允许开发者使用JavaScript编写服务器端应用,极...
JavaScript MD5 实现。兼容 node.js 等服务器端环境...MD5哈希值var hash = md5('value') // "2063c1608d6e0baf80249c42e2be5804"服务器端下面是一个如何使用Node.js在服务器端使用 JavaScript MD5 模块的示例。使用NPM
接下来,我们关注服务器端的模块化标准——**CommonJS**。Node.js社区广泛采用的CommonJS规范提供了一种在服务器端加载和使用模块的方法。通过`require()`函数,我们可以导入需要的模块,然后调用其方法。例如,加载...
它使得开发人员能够在服务器端运行 JavaScript,从而打破了传统的客户端 JavaScript 开发模式。Node.js 的出现极大地促进了全栈 JavaScript 开发的流行,并且为构建高性能、可伸缩的网络应用提供了有力的支持。 ###...
SeaJS便是一个专注于JavaScript模块化开发的库,它提供了一种在浏览器端进行模块化编程的方式,类似于服务器端的CommonJS,但又针对浏览器环境进行了优化。 1. 模块化概念: 模块化是将代码按照功能划分为独立的...
这种功能通常通过AJAX(Asynchronous JavaScript and XML)实现,通过异步请求获取服务器端的数据,然后在前端动态渲染菜单项,确保用户只能看到和操作他们被授权的功能。 “页面链接”则是指后台管理系统中的导航...
这种方式在服务器端运行时效果很好,但如果在浏览器环境中使用,则可能会因为JavaScript的单线程特性而导致页面阻塞。 为了克服这一限制,在浏览器环境中通常使用异步加载方式,例如AMD(Asynchronous Module ...
3. **闭包**:理解闭包的概念,它是如何形成的,以及在内存管理中的作用,如何利用闭包实现私有变量和模块化。 4. **异步编程**:深入讲解事件循环、回调函数、Promise和async/await,理解JavaScript非阻塞I/O模型...
**模块化系统在JavaScript中的重要性** 在JavaScript开发中,模块化系统扮演着至关重要的角色。随着项目的复杂度增加,代码组织和管理变得越发困难。模块化能够帮助开发者将大型项目拆分成更小、可复用和独立的单元...
随着JavaScript在Web开发中的核心地位不断巩固,模块化成为了应对代码量增大、逻辑复杂度提高的有效手段。本文将深入探讨JavaScript模块化的概念、问题以及几种常见的模块化规范。 **为什么需要JavaScript模块化** ...
3. **Node.js**:Node.js是一个基于Chrome V8引擎的JavaScript运行环境,它让JavaScript可以在服务器端运行。在前端模块化开发中,Node.js用于搭建开发环境,安装和管理依赖,以及构建和打包工具。 4. **Webpack**...