我也来学习nodejs 郁闷的天 文档很不咋的 实例根本跟不上 产品不成熟
完事开头难,聊天室还是有困难的啊 写起来 今天下午第一次接触这个玩意 ...
忽然发现 完全与之前的web开发 不挂钩 后端 还得自己去 处理各种请求 ....
实现聊天室 如果没有一个标准的话 后面东西很乱.... 写就写好 ...
先把框架雏形写出来再说 ... 靠 我也实现个mvc出来玩
下面这个雏形 基本源自 我自己的php框架思想 .... 基本有了 明天继续实现
今明2天把 框架实现好,后面可以自己叠加应用了 .......
可能哥以后 就有段时间折腾这破玩意了...
运行之后
http://localhost:8124/ 会输出 { controller: 'application', action: 'index' }
http://localhost:8124/hello/world/id/123/page/12 会输出
{ controller: 'hello',<br> action: 'world',<br> id: '123',<br> page: '12' }
似乎 还行啊 不知道性能怎么样....
下面把 网站贴下 方便 学习:
https://github.com/joyent/node/wiki/modules
http://cnodejs.org/blog/?p=104
http://www.cnblogs.com/qleelulu/archive/2011/01/28/nodejs_into_and_n2mvc.html [url=http://dl.iteye.com/topics/download/98d7cd37-5424-38d7-aa74-840acf68106b]源代码下载[/url]
http://cnodejs.org/cman/ []
http://cnodejs.org/api/
http://seajs.com/
http://www.w3school.com.cn/js/jsref_substr.asp
完事开头难,聊天室还是有困难的啊 写起来 今天下午第一次接触这个玩意 ...
忽然发现 完全与之前的web开发 不挂钩 后端 还得自己去 处理各种请求 ....
实现聊天室 如果没有一个标准的话 后面东西很乱.... 写就写好 ...
先把框架雏形写出来再说 ... 靠 我也实现个mvc出来玩
下面这个雏形 基本源自 我自己的php框架思想 .... 基本有了 明天继续实现
今明2天把 框架实现好,后面可以自己叠加应用了 .......
可能哥以后 就有段时间折腾这破玩意了...
console.log('kenxu聊天室程序');// 实现 简易的mvc模式var http = require('http');var system = require("sys");var filesystem = require("fs");var url = require("url");// 工具代码var __undef = 'undefined',__proto = "prototype";object.extend = function(dest, source) { for (var property in source) dest[property] = source[property]; return dest;};object.extend(string[__proto],{ trim: function(){return this.replace(/^\s+|\s+$/g, '');}});var utilities = { arraymap: function(list, fn) { if (list && list.length){ var r = []; for (var i = 0; i < list.length; i++) { var x = fn(list[i], i); if (x !== null) { r.push(x) ; } } return r ; } return []; } , each: function(list,fn){ if (list && list.length) for (var i = 0; i < list.length; i++) if (fn.call(list[i],i) == '#end#') break ; }};/** * udi 对象 实现请求资源定位器 * @type */var udi = { udi_controller: 'controller', udi_action: 'action', default_controller: 'application', default_action: 'index' };function __request_filter(pathinfo){ var pathinfo = pathinfo || '/'; var parts = pathinfo.substr(1).split('/'); var params = {}; if (parts[0] && parts[0].trim().length > 0){ params[udi.udi_controller] = parts[0].trim(); } if (parts[1] && parts[1].trim().length > 0){ params[udi.udi_action] = parts[1].trim(); } for (var i = 2; i < parts.length; i += 2) { if (parts[i + 1]) { params[parts[i]] = parts[i + 1]; } } // 校验 udi参数是否存在 if (!params[udi.udi_controller]){ params[udi.udi_controller] = udi.default_controller; } if (!params[udi.udi_action]){ params[udi.udi_action] = udi.default_action; } return params;}var qrequest = function(req){ this._req = req; };/** * 单一入口分发器 * @type */var dispatcher = { /** * 请求分发方法,可能会抛出异常,不知道异常怎么写... * * @param {} request * @param {} response */ dispose: function(request, response){ // 取拼装控制器以及action var pathinfo = url.parse(request.url).pathname; var params = __request_filter(pathinfo); console.log(params); response.writehead(200, {'content-type': 'text/plain'}); response.end(pathinfo + '\n'); } };//sfw.controller = function(request)http.createserver(function (request, response) { try { dispatcher.dispose(request, response); } catch(e){ console.log(e); }}).listen(8124);
运行之后
http://localhost:8124/ 会输出 { controller: 'application', action: 'index' }
http://localhost:8124/hello/world/id/123/page/12 会输出
{ controller: 'hello',<br> action: 'world',<br> id: '123',<br> page: '12' }
似乎 还行啊 不知道性能怎么样....
下面把 网站贴下 方便 学习:
https://github.com/joyent/node/wiki/modules
http://cnodejs.org/blog/?p=104
http://www.cnblogs.com/qleelulu/archive/2011/01/28/nodejs_into_and_n2mvc.html [url=http://dl.iteye.com/topics/download/98d7cd37-5424-38d7-aa74-840acf68106b]源代码下载[/url]
http://cnodejs.org/cman/ []
http://cnodejs.org/api/
http://seajs.com/
http://www.w3school.com.cn/js/jsref_substr.asp