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