node.js如何加载一个模块,如何创建一个模块

widuu 2013-4-26 PHP技术 4,039 0 喜欢 (0)

什么是模块,其实一个文件就是一个模块,譬如我们前边用的require('http');就是一个模块,内置的模块!功能需求来说我们可能需要不同的功能,但是没有这样的模块怎么办?那就带自己去制造了!来个简单的!
Node.js 提供了 exports 和 require 两个对象,其中 exports 是模块公开的接口,require 用于从外部获取一个模块的接口,即所获取模块的 exports 对象。
[php]
//创建一个 denglu.js
var username;
var password;

exports.setName = function(name){
username = name;
};

exports.setPassword = function(pwd){
password = pwd;
};

exports.login = function(){
if(username == password){
console.log('登陆成功');
}else{
console.log("登陆失败");
}
};

[/php]
然后创建一个 index.js
[js]
var myModule = require('./denglu');
myModule.setName('xiaowei');
myModule.setPassword('xiaowei1');
myModule.login();
[/js]
然后运行 node index.js 出现结果是登陆失败 需要注意的是这里
[js]
//我们修改index.js
var myModule = require('./denglu');
myModule.setName('xiaowei');
myModule.setPassword('xiaowei1');
var myModule1 = require('./denglu');
myModule1.setName('xiaowei');
myModule1.setPassword('xiaowei');
myModule.login();
[/js]
输出结果是登陆成功,这里我们就知道了!覆盖 exports 然后我们怎么把一个模块封装到一个对象中呢 譬如登陆的 login
[js]
//还是denglu.js
function denglu(){
var username;
var password;
this.setName = function(name){
username = name ;
}
this.setPassword = function(pwd){
password = pwd;
}

this.login = function(){
if(username == password){
console.log("登陆成功");
}else{
console.log("登陆失败");
}
}
}
//exports.denglu = denglu; 如果这样的话 我们require 实例化的 就变成了 require('./denglu').denglu(); 略显冗余使用下面简单方法
module.exports = denglu;
[/js]
然后我们同样对象的 方法引用
[js]
var denglu = require('./denglu');
denglu = new denglu();
denglu.setName('肖伟');
denglu.setPassword('肖伟');
denglu.login();
[/js]

今天就说到这里,明天继续如果创建一个包 如果你熟悉java的话 就很简单的理解了包的概念

转载请注明来自微度网络,本文标题:《node.js如何加载一个模块,如何创建一个模块》

喜欢 0 发布评论
Top