Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
branch: master
Fetching contributors…

Cannot retrieve contributors at this time

file 151 lines (133 sloc) 3.092 kb

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 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/

Something went wrong with that request. Please try again.