A simple MVC framework for node web server.
JavaScript
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/