node.js模块、包

创建模块

Node.js 提供了 exports 和 require 两个对
象,其中 exports 是模块公开的接口,require 用于从外部获取一个模块的接口,即所获
取模块的 exports 对象。
让我们以一个例子来了解模块。创建一个 module.js 的文件,内容是:
//module.js
 var name;
 exports.setName = function(thyName) {
  name = thyName;
};
 
exports.sayHello = function() {
  console.log('Hello ' + name);
};
在同一目录下创建 getmodule.js,内容是:
//getmodule.js
var myModule = require('./module');
myModule.setName('BYVoid');
myModule.sayHello();


运行node getmodule.js,结果是:
Hello BYVoid
在以上示例中,module.js 通过 exports 对象把 setName 和 sayHello 作为模块的访
问接口,在 getmodule.js 中通过 require('./module') 加载这个模块,然后就可以直接访
问 module.js 中 exports 对象的成员函数了。

覆盖exports

使用exports.Hello = Hello; 时,我们在其他文件中需要通过 require('./singleobject').Hello 来获取
Hello 对象,这略显冗余,可以用下面方法稍微简化:

可以通过module.exports = Hello;

包管理

npm i/install package安装本地包

npm i -g package安装全局包

npm link package source dest创建链接

npm init 初始化包的package.json

npm publish发布包

使用node-inspector调试

首先,使用 npm install -g node-inspector 命令安装 node-inspector,然后在终
端中通过 node --debug-brk=5858 debug.js 命令连接你要除错的脚本的调试服务器,
启动 node-inspector:
$ node-inspector
在浏览器中打开 http://127.0.0.1:8080/debug?port=5858,即可显示出优雅的 Web 调试工
具。

常用工具util

util.inherits(constructor, superConstructor)是一个实现对象间原型继承

的函数。JavaScript 的面向对象特性是基于原型的,与常见的基于类的不同。JavaScript 没有
提供对象继承的语言级别特性,而是通过原型复制来实现的,具体细节我们在附录A中讨论
在这里我们只介绍 util.inherits 的用法,示例如下:
var util = require('util');
 
function Base() {
  this.name = 'base';
  this.base = 1991;
   
  this.sayHello = function() {
    console.log('Hello ' + this.name);
  };
}
 
Base.prototype.showName = function() {
  console.log(this.name);

}; //原型定义
 function Sub() {
  this.name = 'sub';
}
 util.inherits(Sub, Base);

Base 有三个在构造函数内定义的属性和一个原型中定义的函数,通过 util.inherits 实现继承。
注意,Sub 仅仅继承了 Base 在原型中定义的函数,而构造函数内部创造的 base 属性和 sayHello 函数都没有被 Sub 继承。

util.inspect()将对象转化为字符串,其他util.isArray()、 util.isRegExp()、
util.isDate()、util.isError() 四个类型测试工具,以及 util.format()、util.
debug() 等工具

posted @ 2015-12-06 15:37  mebius  阅读(202)  评论(0编辑  收藏  举报