A simple MVC framework for node web server.
JavaScript
Switch branches/tags
Nothing to show
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
lib
sample
README.md
index.js
package.json

README.md

Ti

Ti is a MVC web application server framework for node.js. It provides the basic development framework and some related components, including libraries and tools.

Install

npm install Ti

Sample

node ./sample/test.js

Document

Application's document path

//------------------app path-------------
|--app
    |----app.js // app input file
    |----controller //controller path
        |----site.js //site controller
        ------...
    |----view //template path
        |----inc
            |----header.tpl
        |----index.tpl
        |----...
    |----model //model path
    |----plugin
    |----...

simple to create a app

//get application
var App = require('ti').application;

//definne product path;
var productPath = process.cwd();

var app = new App({
	//configure controller path
	controllerPath:productPath+"/controller",
	//configure default controller name
	defaultController:'site',
	//route config
	routes:{
		'p-':"product/detail",//'p-','controller/action'
	},
	//port
	port:5927,
	//configure route start sep
	baseUriIndex:0,
	//configure template path
	viewPath:productPath+'/view',
	//configure template plugin path
	templatePluginPath:productPath+"/plugins/view"
});

//app start
app.start();

###Model

//path:model/product.js
//demo for product
module.exports = {
	getItem:function(id){
		//code for getItem
		return {
			id:id,
			title:"Demo for product",
			content:"Demo for product content"
		}
	},
	getList:function(){
		//code for getList
	}

}

###Controller

//demo for ProductController
//path: controller/product.js

var Controller = require('ti').Controller;
//exports
module.exports = new Controller({
	detailAction:function(req,res){
		var id = req.params.id,
			productModel = require('model/product'),
			item = productModel.getItem(id);

		this.display('test.tpl',item);
	}		
});

###View

<!DOCTYPE>
<head>
	<title>Ti-Demo</title>
</head>
<html>
<body>
	<h1><%=title%></h1>
	<p><%=content%></p>
</body>
</html>

####openTag is : <% ####closeTag is : %> You can modify it like this:

var template = require('ti').template;

template.openTag = "<{" ; // You custom openTag put here.
template.closeTag = "}>" ;// You custom closeTag put here.

####include a tpl

<%=include('a.tpl',data)%>

###template plugin: #####create a template plugin

var template = require('ti').template;
//define a template plugin
template.plugin('escape',function(str,type){
	//code for plugin
	//need return what u want;
	return str;
});

#####use plugin

<p><%=title|escape:"html"%></p>

####some default plugin: escape: escape tpl var for html or url :

default: set a default value for tpl var;

truncate: truncate tpl var ;

#####then,open browse and view: http://127.0.0.1:5927 Enjoy.

##中文介绍在这里: http://www.ue7.cn/blog/2013/02/22/nodejs-mvc-ti/