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

//创建一个 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("登陆失败");
	}
};

然后创建一个 index.js
var  myModule = require('./denglu'); 
myModule.setName('xiaowei');
myModule.setPassword('xiaowei1');
myModule.login();
然后运行 node index.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();
输出结果是登陆成功,这里我们就知道了!覆盖 exports 然后我们怎么把一个模块封装到一个对象中呢 譬如登陆的 login
//还是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;
然后我们同样对象的 方法引用
var denglu = require('./denglu');
denglu = new denglu();
denglu.setName('肖伟');
denglu.setPassword('肖伟');
denglu.login();
今天就说到这里,明天继续如果创建一个包 如果你熟悉java的话 就很简单的理解了包的概念

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论
立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部