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; ....