绝对模块:Node通过在其内部node_modules查找到或者Node内置的fs这样的模块。比如你安装你一个pug模块,路径就成了./node_modules/pug,这种情况下就可以直接通过名字require这个模块require('pug') 相对模块:将require指向一个想对工作目录中的JavaScript文件。
让模块暴露出一个API成为require调用的返回值,要依靠module和exports这两个全局变量 默认情况下,每个模块都会暴露出一个空对象,可以用exports在该对象上添加属性:
module_a.js
exports.name = 'ldl'; exports.data = 'this is some data'; var privateVariable = 6; exports.getPrivate = function(){ return privateVariable; };main.js
var a = require('./module_a'); console.log(a.name); console.log(a.data); console.log(a.getPrivate()); //执行情况 PS E:\codes\nodejs\module> node main ldl this is some data 6exports其实就是对module.exports的引用,其在默认情况下是一个对象。你也可以彻底重写module.exports来满足你的需求。
person.js
module.exports = Person; function Person (name){ this.name = name; }; Person.prototype.talk = function (){ console.log('my name is',this.name); }index.js
var Person = require('./person'); var ldl = new Person('ldl'); ldl.talk(); PS E:\codes\nodejs\module> node index my name is ldl以上就是NodeJs中模块系统的简单玩法.
