stdlib.js
// 打包模块 module.exports = stdlib; // 声明方法 stdlib.prototype.toString = toString; stdlib.prototype.talk = talk; // 声明变量 stdlib.prototype.className = null; // 构造方法 function stdlib(name) { this.className = ‘class: ‘ + name; // 获取IO流 this.stdin = process.stdin; this.stdout = process.stdout; }; // 方法 function toString() { return this.className; }; function talk () { var interface = require(‘readline‘); var rl = interface.createInterface(this.stdin, this.stdout); rl.setPrompt(‘Nerds> ‘); rl.prompt(); rl.on(‘line‘, function (cmd) { switch(cmd.trim()) { case ‘:q!‘: console.log(‘stream close!‘); process.exit(0); break; case ‘girlfriend‘: console.log(‘Dude,I bet you won`t :D‘); break; default: console.log(‘Say what? I might have heard `‘ + cmd.trim() + ‘`‘); break; } rl.prompt(); }).on(‘close‘, function (cmd) { console.log(‘Enjoy js world, have nice day :D‘); process.exit(0); }); };
main.js
// 安装模块 var stdlib = require(‘./stdlib‘); // 从模块中创建对象 var tsh = new stdlib(‘my stdlib‘); console.log(tsh.toString()); tsh.talk();
node.js中采用 modules.exports = class 将某个类暴露供安装对应模块的文件使用
Lib.js: module.exports = Lib; function Lib() {} ... UserFile.js 2: var installModule = module(‘./Lib‘); var instanceObject = installModule(); ...
类似于java的打包和导入包
file 1: package com; public class Lib { ..... } file 2: import com.lib; ....