这里有新鲜出炉的 7 天学会 Node.js,程序狗速度看过来!
Node.js 是一个基于 Chrome JavaScript 运行时建立的一个平台, 用来方便地搭建快速的 易于扩展的网络应用 · Node.js 借助事件驱动, 非阻塞 I/O 模型变得轻量和高效, 非常适合 运行在分布式设备 的 数据密集型 的实时应用
这篇文章主要介绍了 Node.js 服务器监听方法, 结合实例形式分析了 nodejs 事件监听相关操作技巧, 需要的朋友可以参考下
本文实例讲述了 Node.js 服务器监听方法。分享给大家供大家参考,具体如下:
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 监听每个服务器事件,然后输出每个事件的相关信息
- 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 程序设计有所帮助。
来源: http://www.phperz.com/article/17/0623/334068.html