本文實例講述了Node.js服務器監(jiān)聽方法。分享給大家供大家參考,具體如下:
httpsnifferInvoke.js
var http = require('http');var sniffer = require('./httpsniffer');var server = http.createServer(function(req, res){ res.writeHead(200, {'Content-Type': 'text/plain'}); res.end('Hello, World!/n');});sniffer.sniffOn(server);server.listen(3000);httpsniffer.js
//http sniffer 監(jiān)聽每個服務器事件,然后輸出每個事件的相關信息var url = require('url');var util = require('util');exports.sniffOn = function(server){ server.on('request', function(req, res){ util.log('e_request'); util.log(reqToString(req)); }); server.on('close', function(error){ util.log('e_close error=' + error); }); server.on('checkContinue', function(req, res){ util.log('e_checkContinue'); util.log(reqToString(req)); res.writeContinue(); }); server.on('upgrade', function(req, socket, head){ util.log('e_upgrade'); util.log(reqToString(req)); }); server.on('clientError', function(){ util.log('e_clientError'); });}var reqToString = function(req){ var ret = 'request' + req.method + ' ' + req.httpVersion + ' ' + req.url + '/n'; ret += JSON.stringify(url.parse(req.url, true)) + '/n'; var keys = Object.keys(req.headers); for (var i = 0; i < keys.length; i++){ var key = keys[i]; ret += i + ' ' + key + ': ' + req.headers[key] + '/n'; } if (req.trailers) ret += req.trailers + '/n'; return ret;}exports.reqToString = reqToString;
希望本文所述對大家nodejs程序設計有所幫助。
新聞熱點
疑難解答