Node.JS 3.Modules

在上一节中你看到了我们使用:

 

var some_var = require('built-in_module_name');

 

来导入 Node.JS 内建的 Modules

那如果你想导入自己写的 Modules 呢?

Node.JS 提供了命令来供你导入。

 

现在就开始写脚本来尝试一下导入自己的 module 吧,下面是 modules.js 的内容:

 


var foobar = require('./foobar'),
    sys 
= require('sys');

sys.puts(
'Foobar: ' + foobar.bar('bar'));

 

如上面的示例,如果导入的是内荐的 module,只需:

 

require('module_name');

 

而如果要导入的是自己的 module,如 module_name.js 就需要像如下这样导入:

 

require('./module_name');

 

我们可以看到,不需要加上后缀名 .js

./ 则表示相对于执行 require 文件的相对路径。比如你的 module 包括在一个名为 "libs"的子目录。则导入的代码应改为:

 

require('./libs/module_name');

 

Node.JS 也允许使用绝对路径来导入 module

 

require('/path/to/module_name');

 

最后一行输出了 Foobar: 加上了另外一个名为 foobar module 中的 bar 函数的返回值。下面我们来看看 foobar.js 这个 module

 


var foo = 'Foo';

exports.foo 
= function() {
    
return foo;
};

exports.bar 
= function(bar) {
    
return foo + bar;
};

首先,所有定义在 module 的变量都是相对于这个 module 私有的,他们的作用域仅限于当前的 module,如这个 foo

 

var foo = 'Foo';

 

而需要导出的函数则需要添加到 exports 中。如上例所示的 foo() bar() 函数,可以在其他的 module 中调用。

 

modules.js 中我们这样使用了 bar 函数:

 

sys.puts('Foobar : ' + foobar.bar('bar'));

 

这就会调用了 foobar module 中的 bar 函数,并将其返回值 Foobar: 相加。最后我们看看输出结果。

 

Foobar : Foobar

posted on 2011-09-13 01:06  兴说:  阅读(447)  评论(0编辑  收藏  举报