CommonJS基于服务器端(node)运用
Posted eyes++
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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运行:
以上是关于CommonJS基于服务器端(node)运用的主要内容,如果未能解决你的问题,请参考以下文章