Node.js 超深度体验
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 继承 类Shopvar 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([])); // trueconsole.log(util.isArray(new Array)) // trueconsole.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 客户端
关键字:node.js
版权声明
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处。如若内容有涉嫌抄袭侵权/违法违规/事实不符,请点击 举报 进行投诉反馈!