Node.js 模块与 Web 应用开发全解析
1. JavaScript 全局命名空间问题
JavaScript 是一种强大的编程语言,具备独特的特性,能实现高效且易于维护的编程。然而,它存在一个重大设计缺陷,即共享单一全局命名空间。在浏览器环境中,当向网页加载脚本时,引擎会将其代码注入到所有其他脚本共享的地址空间。这意味着在一个脚本中分配变量时,可能会意外覆盖之前脚本中已定义的变量。对于小型代码库,这种情况或许可行,但在大型应用程序中,很容易引发冲突,且错误难以追踪。
2. CommonJS 模块标准
为解决全局命名空间问题,2009 年启动了 CommonJS 项目,旨在标准化浏览器外使用 JavaScript 的方式。该项目不断发展,支持解决多种 JavaScript 问题,包括全局命名空间问题。CommonJS 标准规定了使用模块时的以下关键组件:
- require() :用于将模块加载到代码中的方法。
- exports :每个模块中包含的对象,允许在模块加载时暴露代码片段。
- module :最初用于提供模块元数据信息的对象,它还包含 exports 对象的指针作为属性。
以下是一个简单的示例:
// hello.js
const message = 'Hello';
exports.sayHello = function(){
console.log(message);
}
// server.
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



