node.js中是通过模块来划分为单位来划分所有功能的。每个模块为一个js文件。每个模块中定义的全局变量或函数的作用范围也被限制在这个模块中,只能用exports对象将其传递到外部。
exports.printFoo=function(){return "foo"};
//使用exports对象使模块外部可以使用这个函数
在引用模块时,使用require。
var foo=require('./foo.js');
//通过foo.js路径引用foo.js
console.log(foo.printFoo();
//访问foo.js内的printFoo函数
表 node.js v0.10版中的核心模块
模块名 | 模块功能 | Stability(稳定度) |
---|---|---|
assert | 为应用程序的单元测试添加断言处理 | 5-Locked(今后不会修改) |
buffer | 用于实现二进制的数据存储与转换 | 3-Stable(稳定) |
child_process | 用于实现子进程的创建与管理 | 3-Stable(稳定) |
cluster | 用于实现多进程 | 1-Experimenntel(实验性阶段) |
console | 用于控制台输出信息 | 4—API Frozen(今后API部分不会被修改) |
crypto | 用于实现数据加密解密处理 | 2-Unstable(不稳定) |
debugger | 用于实现一个内置调试器来帮助开发者调试应用程序 | 3-Stable(稳定) |
dns | 用于实现与DNS相关处理 | 3-Stable(稳定) |
domain | 用于实现多个I/O之间的协作处理 | 2-Unstable(不稳定) |
events | 用于为事件处理实现一个基础类 | 4—API Frozen(今后API部分不会被修改) |
fs | 用于操作文件及文件系统 | 3-Stable(稳定) |
http | 用于实现http服务器端和客户端 | 3-Stable(稳定) |
https | 用于实现https服务器端与客户端 | 3-Stable(稳定) |
net | 用于创建TCP服务器和客户端 | 3-Stable(稳定) |
os | 用于获取操作系统信息 | 4—API Frozen(今后API部分不会被修改) |
path | 用于处理文件路径 | 3-Stable(稳定) |
punycode | 用于实现Punycode字符串的编码及解码 | 2-Unstable(不稳定) |
querystring | 用于处理http请求中使用的查询字符串 | 3-Stable(稳定) |
readline | 用于读取一行标准输入流 | 2-Unstable(不稳定) |
repl | 用于实现REPL(Read-Eval-Print——Loop)交互式运行环境 | (无) |
stream | 用于为流的输入/输出处理提供一个基础类 | 2-Unstable(不稳定) |
string_decoder | 用于实现从二进制数据到字符串数据之间的转换 | 3-Stable(稳定) |
tls | 用于使用OpenSSL来实现TLS/SSL通信处理 | 3-Stable(稳定) |
tty | 用于获取来自于TTY终端的信息 | 2-Unstable(不稳定) |
url | 用来实现URL字符串的解析和格式化 | 3-Stable(稳定) |
util | 用于实现各种实用函数 | 5-Locked(今后不会修改) |
vm | 用于为JavaScript脚本提供一个独立的运行环境 | 2-Unstable(不稳定) |
zlib | 内部使用zlib类来实现数据的压缩和解压处理 | 3-Stable(稳定) |
在node.js中,可以直接使用require函数并将模块名设置为require函数的参数值得方法来引用这些模块
var http=require('http');
//这样就可使用http变量来访问http模块中的属性和方法
表 Node.js中追加的类、函数和对象
类、函数和对象名 | 描述 |
---|---|
Buffer类 | 用于为二进制数据的存储提供一个缓冲区 |
setTimeout函数 | 用于在指定时间到达时执行一个指定函数,指定方法为从当前时刻之后的多少毫秒 |
clearTimeout函数 | 用于取消setTimeout函数的执行 |
setInterval函数 | 用于指定每个多少时间执行一次指定的函数 |
clearInterval函数 | 用来取消setInterval函数的执行 |
require 函数 | 用于加载模块 |
module对象 | 用于访问模块信息 |
process对象 | 用于访问进程信息 |
除了可以使用内置模块之外,也可通过各种第三方模块的安装对node.js现有功能的拓展。
一个简单的示例应用程序
//app.js
var http=require('http'); //使用http变量引用http模块
//createServer创建用于接收http客户端请求并返回响应的http服务器应用程序
//createServer 中定义了响应的回调函数,函数有两个参数:第一个代表客户端请求对象,第二个代表服务器端所作出的响应对象
//writeHead 书写响应头
//write 书写一段HTML代码
//*.end 输出一行HTML代码并结束响应流
//.listen 监听端口及地址
http.createServer(function(req,res){
res.writeHead(200,{'Content-Type':'text/html'});
res.write('<head><meta charset="utf-8"/></head>');
res.end('你好\n');
}).listen(1337,"127.0.0.1");
console.log('Server running at http://127.0.0.1:1337');
在命令行窗口中运行app.js
node app.js
在浏览器中输入 127.0.0.1:1337