编写稍大一点的程序时一般都会将代码模块化。在NodeJS中,一般将代码合理拆分到不同的JS文件中,每一个文件就是一个模块,而文件路径就是模块名。
在编写每个模块时,都有require、exports、module三个预先定义好的变量可供使用。
require函数用于在当前模块中加载和使用别的模块,传入一个模块名,返回一个模块导出对象。
模块名可使用相对路径(以./开头),或者是绝对路径(以/或C:之类的盘符开头),模块名中的.js扩展名可以省略。
举个例子:
var express = require("express"); var func1 = require("./func1");// 是与当前main.js同路径下的func1.js模块 var func2 = require("../nodejs/func2");// func2.js则位于与main.js父文件同路径下的
exports对象是当前模块的导出对象,用于导出模块公有方法和属性。
别的模块通过require函数使用当前模块时得到的就是当前模块的exports对象。
比如上面提到的func1.js
我们可以这样写代码然后导出来:
exports.func1 = function(){ console.log("This is func1"); }; /*或者这样 function func1(){ console.log("This is func1"); } exports.func1 = func1; */
module对象可以访问到当前模块的一些相关信息,但最多的用途是替换当前模块的导出对象。
例如模块导出对象默认是一个普通对象,如果想改成一个函数的话,可以使用以下方式。
module.exports = function () { console.log('Hello World!'); };
这样一来,模块默认导出对象被替换为一个函数。我们在main.js里边就可以直接 var app = require("./func1")(); 操作了
还可以导出一个对象的形式:
//在func1.js里边这样 module.exports = function(name, age) { this.name = name; this.age = age; this.about = function() { console.log(this.name +' is '+ this.age +' years old'); }; }; //然后在main.js里边这样 var Func1 = require('./func1.js'); var r = new Func1('xiaoming', 12); r.about(); // xiaoming is 12 years old
-----------好了 以上就是nodeJS的起步,有没有发现,好神奇..--------------
您可能感兴趣的文章: