什么是模块,其实一个文件就是一个模块,譬如我们前边用的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的话 就很简单的理解了包的概念
发表评论 取消回复