CommonJS基于服务器端(node)运用

node是完全遵循CommonJS规范的
CommonJS说明:
    每个文件都可以当作一个模块
    在服务端:模块的加载是运行时同步加载的
    在浏览器端:模块需要提前编译打包处理
基本语法:
    暴露模块:
        module.exports = value
        exports.xxx = value
    引入模块:require(xxx) (其中第三方模块时xxx为模块名,自定义模块时为模块文件路径)
实现:
    服务器端实现:Node.js
    浏览器端实现:Browserify(也称CommonJS的浏览器端的打包工具)

大家还可以看看我的另一篇博文:CommonJS基于浏览器端运用
以下是代码部分:
文件目录:
目录
先通过命令行初始化环境,方便下包:

npm init --yes

下载uniq包:

npm i uniq --save

modules目录下文件:
module1.js

// module.exports = value 暴露一个对象
module.exports = {
    msg: 'module1',
    foo(){
        console.log(this.msg);
    }
};

module2.js

// 暴露一个函数 module.exports = function()
module.exports = function() {
    console.log('module2');
}

module3.js

// exports.xxx = value
exports.foo = function() {
    console.log('foo() module3');
};

exports.bar = function() {
    console.log('bar() module3');
};

exports.arr = [6,2,5,2,8,10];

app.js

// 将其他模块汇集到主模块
let uniq = require('uniq'); // 第三方库应该放到自定义模板上方,这个库可以给数组排序并且去重

let module1 = require('./modules/module1');
let module2 = require('./modules/module2');
let module3 = require('./modules/module3');

// module1是对象,所以调用方式如下:
module1.foo();
// module2是函数,所以调用方式如下:
module2();
// module3有多个函数,所以调用方式如下:
module3.foo();
module3.bar();
console.log(module3.arr);
// 取出module3中的数组,该方法会自动给数组元素去重和排序,根据数字第一位编码排序
let result = uniq(module3.arr);
console.log(result);

node运行:

运行结果
更多相关内容大家可以前往我的个人博客浏览:eyes++的个人空间

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值