CommonJs标准

Posted 言凡

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CommonJs标准相关的知识,希望对你有一定的参考价值。

是一套规范管理模块

每个js 为一个模块,多个模块作为一个包

node.jsCouchdb是对其的实现;

不同于jQuery

模块:定义、标识、引用(地址/模块名称)

模块类型:

核心模块http fs path

文件模块var util=require(‘./util.js’)

第三方模块npm  var promise=require(‘bluebird’)

模块的流程:

创建模块 teacher.js  function foo(){}

导出模块 exports.add=function(){}  foo

加载模块 另一个js文件var teacher=require(‘./teacher.js’)

使用模块 teacher.add(‘wangcf’)

 

源码:

student.js

function add(student){
    console.log(‘Add Student: ‘ + student)
}
//通过expots对象暴露方法
exports.add=add

 teacher.js

function add(teacher){
    console.log(‘Add Teacher: ‘ + teacher)
}
//通过expots对象暴露方法
exports.add=add

 

klass.js

//require引用模块
var student = require(‘./student‘)
var teacher = require(‘./teacher‘)

function add(teacherName,students){
    teacher.add(teacherName)
    
    students.forEach(function(item,index){
        student.add(item);
    })
    
}
///两者作用相同
//传统的模块实例,是module.exports的辅助方法
exports.add = add
//有这个会忽略exports特别的对象类型,真实存在的东西
//module.exports = add

 

index.js

var klass = require(‘./klass‘);

klass.add("教师",[‘学生1‘,‘学生2‘])

exports.add = function(klasses){
    klasses.forEach(function(item,index){
        var _klass = item;
        var teacherName = item.teacherName;
        var students = item.students;
        
        klass.add(teacherName,students)
    })
}

 

以上是关于CommonJs标准的主要内容,如果未能解决你的问题,请参考以下文章

前端CommonJS和ES Module的区别面试向

前端工程化4:如何去做js模块化开发?ES Modules/CommonJS有什么区别?

Node.js相关——CommonJS规范

JS模块规范

CommonJS规范

CommonJS规范