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