ti

A simple MVC framework for node web server.

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.

npm install Ti
node ./sample/test.js

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
    |----...
//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();
//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
	}

}
//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);
	}		
});
<!DOCTYPE>
<head>
	<title>Ti-Demo</title>
</head>
<html>
<body>
	<h1><%=title%></h1>
	<p><%=content%></p>
</body>
</html>

You can modify it like this:

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

template.openTag = "

<%=include('a.tpl',data)%>
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 a plugin in xxx.tpl

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

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.