您的位置:首页 > Web前端 > Node.js

javascript模块化规范之commonJS(node端的实现)

2019-06-26 13:14 501 查看

commonJS是javascript模块化规范之一。它的主要思想是"每个js文件即一个模块",在子模块中暴露接口到总的js文件中。可以避免污染全局环境,出现命名冲突的问题。commonJS的实现分为node端和浏览器端

node.js模块化

1.下载安装node.js

2.创建项目结构

|-modules
 |-module1.js
 |-module2.js
 |-module3.js
|-app.js
|-package.json
 {
 “name”:“commonjs_node”,
 verson:“1.0.0”
 }
其中,modules中存放各个子模块,app.js是总的模块,package.json可以手动创建,也可以使用开发工具的命令行进入根目录,运行 npm init命令.

3.下载第三方模块

如下载uniq模块
npm install uniq --save
–save命令是将下载的第三方模块写入package.json中的dependencies属性

4.模块化编码

  • module1.js
    module.exports = {
    foo() {
    console.log('moudle1 foo()')
    }
    }
  • module2.js
    module.exports = function () {
    console.log('module2()')
    }
  • module3.js
    exports.foo = function () {
    console.log('module3 foo()')
    }
    
    exports.bar = function () {
    console.log('module3 bar()')
    }
  • app.js
    /**
    1. 定义暴露模块:
    module.exports = value;
    exports.xxx = value;
    2. 引入模块:
    var module = require(模块名或模块路径);
    */
    "use strict";
    //引用模块
    let module1 = require('./modules/module1')
    let module2 = require('./modules/module2')
    let module3 = require('./modules/module3')
    
    let uniq = require('uniq')
    let fs = require('fs')
    
    //使用模块
    module1.foo()
    module2()
    module3.foo()
    module3.bar()
    
    console.log(uniq([1, 3, 1, 4, 3]))
    
    fs.readFile('app.js', function (error, data) {
    console.log(data.toString())
    })
    子模块中暴露的实质上是exports对象,它原本是一个空的对象。module.exports = value(value可以是任何数据类型)。exports对象被重写。exports.xx = value,相当于向exports对象中添加属性xx.这种暴露方法可以暴露多个接口。而module.exports = value方法只能暴露一个接口。然后在app.js中用let moduleX = requie(“XXX”)。注意,当我们引入自定义模块时XXX指的是模块(即对应的js文件的相对路径),而当我们引入第三方模块时,XXX指的是报名.如require(“uniq”)

5.通过node运行app.js

*命令 node app.js
*工具 右键 运行

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: