本文章在本人个人NodeJs论坛已经发布:www.tnodejs.com 希望得到NAE的邀请码! 本小型框架,可提供给各个开发者进行参考,里面涉及到一些NodeJs如何去实现继承 同时如何处理路由请求的问题,还有Mysql数据库链接,可能对于PHP开发者会非常的得心应手
//========================全局变量定义===============================
global.BASE_DIR = __dirname; global.APP = global.BASE_DIR + "/application/"; global.CON = global.APP + "/controller/"; global.CORE = global.APP + "/core/"; global.MODEL = global.APP + "/model/"; global.CONF = global.BASE_DIR + "/conf/"; global.log = global.BASE_DIR + "/log/"; global.PUBLIC = global.BASE_DIR + "/public/"; global.VIEW = global.BASE_DIR + "/view/"; /**
- modules引入 */ global.express = require('express'); global.sio = require('socket.io'); global.fs=require('fs'); global.path = require('path'); global.url = require('url'); global.parseCookie = require('connect').utils.parseCookie; global.MemoryStore = require('./node_modules/connect/lib/middleware/session/memory'); global.Session = require('./node_modules/connect/lib/middleware/session/session'); global.sys = require('util');
代码2-1:index.js
框架代码下载地址github:https://github.com/tnodejs/myweb-nodejs 希望大家是一起交流学习,这里还有很多不足,希望大家一同改进~
回复 (18)
数据库没有用连接池?
@huangdh3 现在才看到3年前你写的nodejs mvc框架,学习中,你现在还在搞这方面的研究么?希望能够经常交流。
@Guojunzhou-git 好久没搞了,还有几轮优化的在里面。感觉应用起来还有点麻烦。
简单接触了下nodejs,发现除了“异步”这个不习惯外,还有“配路由”这个也不习惯,PHP的开发者来说,WEB开发基本都是用“路由规则”来路由,而不用去配的...
我前些天也试图去实现一个基于nodejs的web开发“框架”,虽然它极不完善,甚至是dao都没实现,但却代表了一个多年WEB开发经历的人对WEB开发框架的一个期望
由于我对nodejs的理解很皮毛,所以仅仅是我学习nodejs(或者说仅仅是想了解)过程的各种简单的拼凑
有兴趣的可以看看 https://github.com/tim1020/ec
- 区别于大多数框架的人工配置路由表,ec使用规则路由(三种规则可配 /c/m ,/c.m, /?c=c&m=m),即 访问/c/m时,自动路由到controler下的c.js并执行m方法
- 请求处理req对象,框架已初始化req对象,在controller中可直接使用该对象获取各种请求内容,包括 post,get,cookie,同时支持mulitpart的解释(即支持post上传文件的解释,直接用req.files获取上传文件内容)
- 响应处理res对象,包括setCookie,showErr以及模板输出render,在controller中当完成业务逻辑后,调用该对象来设置响应内容,可以自定义模板引擎,前置条件是使用该引擎使用renderFile(tplfile,data)来渲染转出(没有该方法可自行二次封装)
- 会话管理session,实现了set,get,getAll,unset方法,支持自定义session handler,只需要实现约定的方法即可
- 日志处理log,支持分级,支持设置控制台输出或文件输出,可单独关闭框架debuglog,内置accesslog输出
- 静态文件服务(支持304)
routing的话是直接写在配置文件的!通过读取配置文件信息,来routing相应controller里面的function
每次请求时都要对router.json进行readFileSync?这个没必要吧?
那可以入去做实现呢~我觉得这样也不怎么好!的确是每次请求都需要读取配置信息!是不是可以应该直接存储为global作为静态变量!
在global下注册那么多名字合适么.... 还是注册个命名空间吧.. global.xxxxApp = {}
强啊,都能抽象框架了!
现在进一步更新~互相学习!
嗯我觉的框架都可以去搭建!我也只是学习学习呵呵!也希望大家互相交流!
嗯!说滴很对!呵呵~这种路由设计方法是不合理的!后面我还做了改动!不过没有去维护了!
这结构不错,routing是在controller里面配置的?
有点 magento 的味道,很好很强大
目前我就使用吴哥写的rrestjs框架,再融合我做的aop和orm,感觉够用了~
感觉这样路由表会很大