Node.js 全局对象
__filename
表示当前正在执行的脚本的文件名
__dirname
表示当前执行脚本所在的目录。
setTimeout(cb, ms)
setTimeout(cb, ms) 全局函数在指定的毫秒(ms)数后执行指定函数(cb)。:setTimeout() 只执行一次指定函数。 返回一个代表定时器的句柄值。
function sayLove(){ console.log( "I Love You!"); } // 两秒后执行以上函数 setTimeout(sayLove, 2000);
clearTimeout(t)
clearTimeout( t ) 全局函数用于停止一个之前通过 setTimeout() 创建的定时器。 参数 t 是通过 setTimeout() 函数创建的计算器。
function sayLove(){ console.log( "I Love You!"); } // 两秒后执行以上函数 var t = setTimeout(sayLove, 2000); // 清除定时器 上面函数就不执行了 clearTimeout(t);
setInterval(cb, ms)
setInterval(cb, ms) 全局函数在指定的毫秒(ms)数后执行指定函数(cb)。
返回一个代表定时器的句柄值。可以使用 clearInterval(t) 函数来清除定时器。
setInterval() 方法会不停地调用函数,直到 clearInterval() 被调用或窗口被关闭。
代码
function sayLove(){ console.log( "I Love You!"); } // 间隔2秒执行函数 setInterval(sayLove, 2000);
Node.js 常用工具
util 是一个Node.js 核心模块,提供常用函数的集合,用于弥补核心JavaScript 的功能 过于精简的不足。
util.inherits
util.inherits(constructor, superConstructor)是一个实现对象间原型继承 的函数。
nodejs.js
var util = require('util'); function Shop() { // 商店基类 this.name = '汤氏集团'; // 类属性 this.showAd = function () { // 类方法 console.log(this.name + ',欢迎光临'); }; } Shop.prototype.showName = function () { // 子类可以继承的方法 console.log(this.name); }; function FruitShop() { this.name = '汤氏集团水果店'; } util.inherits(FruitShop, Shop); // 类FruitShop 继承 类Shop var objShop = new Shop(); objShop.showName(); // 汤氏集团 objShop.showAd(); // 汤氏集团,欢迎光临 console.log(objShop); //Shop { name: '汤氏集团', showAd: [Function] } var objFruitShop = new FruitShop(); // objFruitShop.showAd(); // 不能继承 showAd 方法 objFruitShop.showName(); //汤氏集团水果店 console.log(objFruitShop); // FruitShop { name: '汤氏集团水果店' }
输出
util.inspect
util.inspect(object,[showHidden],[depth],[colors])是一个将任意对象转换
为字符串的方法,通常用于调试和错误输出。它至少接受一个参数 object,即要转换的对象
nodejs.js
var util = require('util'); function Shop() { this.name = '汤氏集团'; this.toString = function() { return this.name; }; } var obj = new Shop(); console.log(util.inspect(obj)); console.log(util.inspect(obj, true)); //输出更多隐藏信息
输出
util.isArray(object)
如果给定的参数 "object" 是一个数组返回true,否则返回false。
var util = require('util'); console.log(util.isArray([])); // true console.log(util.isArray(new Array)) // true console.log(util.isArray({})) // false
util.isRegExp(object)
如果给定的参数 "object" 是一个正则表达式返回true,否则返回false。
util.isDate(object)
如果给定的参数 "object" 是一个日期返回true,否则返回false。
util.isError(object)
如果给定的参数 "object" 是一个错误对象返回true,否则返回false。
Node.js GET/POST请求
获取GET请求内容
代码
var http = require('http'); var url = require('url'); var util = require('util'); http.createServer(function(req, res){ res.writeHead(200, {'Content-Type': 'text/plain'}); res.end(util.inspect(url.parse(req.url, true))); console.log(url.parse(req.url, true).query.name); }).listen(3000);
输出
获取POST请求内容
默认是不会解析请求体的, 当你需要的时候,需要手动来做。
代码
var http = require('http'); var querystring = require('querystring'); var util = require('util'); http.createServer(function(req, res){ var post = ''; //定义了一个post变量,用于暂存请求体的信息 req.on('data', function(chunk){ //通过req的data事件监听函数,每当接受到请求体的数据,就累加到post变量中 post += chunk; }); req.on('end', function(){ //在end事件触发后,通过querystring.parse将post解析为真正的POST请求格式 //然后向客户端返回。 post = querystring.parse(post); res.end(util.inspect(post)); }); }).listen(3000);
Node.js 工具模块
OS 模块
提供基本的系统操作函数。
Path 模块
提供了处理和转换文件路的工具。
Net 模块
用于底层的网络通信。提供了服务端和客户端的的操作。
DNS 模块
用于解析域名。
Domain 模块
简化异步代码的异常处理,可以捕捉处理try catch无法捕捉的。
Node.js Web 模块
Node.js 提供了 http 模块,http 模块主要用于搭建 HTTP 服务端和客户端,使用 HTTP 服务器或客户端功能必须调用http 模块
使用 Node 创建 Web 服务器
代码
var http = require('http'); var fs = require('fs'); var url = require('url'); // 创建服务器 http.createServer( function (request, response) { // 解析请求,包括文件名 var pathname = url.parse(request.url).pathname; // 输出请求的文件名 console.log("Request for " + pathname + " received."); // 从文件系统中读取请求的文件内容 fs.readFile(pathname.substr(1),'utf-8', function (err, data) { if (err) { console.log(err); // HTTP 状态码: 404 : NOT FOUND // Content Type: text/plain response.writeHead(404, {'Content-Type': 'text/html'}); }else{ // HTTP 状态码: 200 : OK // Content Type: text/plain response.writeHead(200, {'Content-Type': 'text/html'}); // 响应文件内容 response.write(data.toString()); } // 发送响应数据 response.end(); }); }).listen(8081); // 控制台会输出以下信息 console.log('Server running at http://127.0.0.1:8081/nodejs/index.html');
输出
使用 Node 创建 Web 客户端
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。