###Web application framework for Node.js
Codekart is a powerful Node.js framework with a very small footprint, built for Node.js coders who need a simple and elegant toolkit to create full-featured web applications. If you're a developer who lives in the real world of shared hosting accounts and clients with deadlines, and if you're tired of ponderously large and thoroughly undocumented frameworks, then Codekart might be a good fit.
Codekart 是一套给 Node.js 开发者使用的应用程序开发框架和工具包。 它提供一套丰富的标准库以及简单的接口和逻辑结构, 其目的是使开发人员更快速地进行项目开发。 框架已经完成了诸如url请求自动路由、静态文件服务器和前后端代码模块化等实用且必须的功能。使用 Codekart 可以减少代码的编写量, 并将你的精力投入到项目的创造性开发上。
##安装:
$ cd /data/website
$ npm install codekart #安装Codekart
$ mv codekart myweb #修改codekart为你的自定义名称
##简介:
####它已经帮你出色的完成了下面这些事情:
优雅的框架思维
如果你需要一个真正的框架,而不是一个模块/中间件/工具箱,如果你需要简约与便捷,需要一目了然、理所当然的舒适感,那么 Codekart 将是最好的选择。
高性能 HTTP 服务器
Codekart处理 http 请求的性能接近原生 Node.js 代码: http.createServer(), 原因是框架只是对此函数做了简单的封装,其性能的损耗仅仅只有一个 url 正则匹配运算,路由请求处理程序。
便捷的静态文件服务器
把文件放入 static/ 目录下,启动Codekart,url 访问,搞定!
web 页面模块化支持
实际上,这是Codekart最出色的部分!它是前后端一体化的,可以像写配置文件一样编写web页面, 框架自动完成 js、css 、tpl 文件的模块化加载、合并、压缩, 并在html里引用,自动完成 html 模板的解析,并且支持页面继承和多态,一切就是那么简单轻松!
丰富的工具箱
Codekart准备了一系列强大的前后端工具集合,涉及进程通信,数据缓存,文件读取,文件上传,数据采集与处理,流程控制,任务计划等诸多方面。
##使用示例:
使用Codekart,你可以十分方便的进行web页面模块化配置,例如: framework/view/codekart.js 内容如下:
//web页面定义
var stuff = {
tpl:{body:'codekart'}, //页面的tpl模板文件列表 app/resource/tpl
less:'codekart', //页面的css模板文件列表 app/resource/less
};
//【继承关键代码】
//继承父级页面 和 必须给本模块加上对外接口,以便其他页面继承
exports.stuff = inheritView('html',stuff); //继承至html
//加载配置文件
//var website = load.config('website');
/**
* 页面模板数据获取
* 可以不定义此函数,程序将跳过本页面的数据获取
* @callback 必须调用 ,表示数据获取完成,进行子级页面数据获取,不调用则会一直等待不能进行下一步!!!
* 在callback中返回的变量可以在tpl模板中使用,在这里可以进行数据库的查询等等。
* 复杂的数据获取和运算,建议放在`app/model`中的模块中进行,在这里可以调用`load.model('model')`加载。
*/
exports.data = function(callback){
var that = this
, req = that.request //Node原生request对象
, req = that.response; //Node原生response对象
this.setCookie('user_id', 9999, 3600); //设置cookies
//post提交表单数据处理回调
this.formdata(function(err, fields, files){
// @err 是否出现错误
// @fields 表单的普通文本字段数据
// @files 表单的文件上传
//调用callback返回模板数据
callback({
title: 'Codekart',
postdata: fields['postdata'] //提交的post数据
});
});
};
exports.stuff 对象及为web页面的配置,exports.data函数为页面模板数据的获取函数。你也可以方便的进行页面的继承。
其它更多强大的功能,请查阅 Codekart文档。
##相关链接:
此文档程序由Codekart 0.1开发和驱动: 文档托管地址
官方QQ群:366311819 (问题解答,bug反馈,功能建议等)
本框架来自君鉴网的开发实战积累。
##关于
这是一个开源框架,你可以任意修改和使用它(包括但不限于技术研究与分享、开源项目或者商业产品)。如果要支持本框架的开发,欢迎提交新的代码。
框架主页:http://codekart.jojoin.com
托管地址:https://github.com/yangjiePro/Codekart
也欢迎你联系本框架的作者,提出建议或者bug,进行技术交流:
作者:杨捷
邮箱:yangjie@jojoin.com
QQ :446342398
Github :https://github.com/yangjiePro