Zeta.js以內置服務

前言

Zeta.js 是一款爲node打造的輕量級後端框架,引入了許多angular的概念,可讓你以一種不一樣於express的更有層次的方式編寫後端代碼。這裏是Zeta的中文文檔。html

概覽

Zeta.js提供了一些十分常見的服務給後端web開發者們使得工做更加簡單方便。在接下來的內容裏,咱們將分別介紹這些內置服務。node

渲染

渲染服務既能夠用於字符串也能夠用於文件,目前還只支持html文本和swig模板,可是你能夠十分方便地擴展這一服務由於它是使用Provder實現的。web

渲染字符串

你須要顯式地使用Provider $render來實現字符串的渲染,字符串裏也能夠包含變量。express

jsdemo.get('/',function($scope,$render){
    $scope.end($render.text('<p></p>'),{
        msg:"hello,world"
    });
});
//demo is a module

渲染文件

咱們暴露出一個簡易的函數接口供html或swig文件的渲染。json

jsdemo.get('/',function($scope){
    $scope.render('/index.swig',{
        title:'Welcome'
    })
});

Cookie

Cookie服務在章節工廠裏已經提到過,而實際上它也確實是用Factory實現的。後端

提取cookie

jsvar user=$cookie.val('user');
//return a cookie named user

設置cookie

js//reset the value of cookie
$cookie.val('user',Json.stringfy({name:'bevis'}));
//initialize the cookie
$cookie.val('user','bevis',{
    path:'/',
    maxAge:1000
});
//set value of cookie & cookie 
$cookie.val('user','bevis','maxAge',10000);

//write the cookie to client
$cookie.write($scope);

//a complete example
demo.get('/',function($scope,$cookie){
    $cookie.val('user','bevis',{
        path:'/user',
        maxAge:10000
    });
    $cookie.write($scope);
    $scope.send('').end();
});

表單

咱們使用大名鼎鼎的formidable插件來處理表單提交,不管是post方法提交的json對象仍是文件上傳的form-data,均可以處理。工廠$form會返回一個formidable中的IncomingForm對象,其他的你能夠參照formidable的文檔。數組

jsdemo.post('/',function($scope,$form){
    .....
});
//$form is a IncomingForm object of formidable

靜態服務器

靜態服務器功能返回與請求路徑一致的靜態文件若是你並無爲這些路徑指定處理函數。服務器

開啓服務

jsdemo.config('public',__dirname+'/public');
demo.load();
demo.any('static');

舉個例子,當你發起對於路徑'/img/avatar.jpg'的請求時,客戶端將獲得文件路徑爲'/public/img/avatar.jpg'的圖像。若是文件不存在的話,若是你設置了的話,你應該會獲得一個404。對於子目錄的請求也支持,同時你能夠省略路徑最末端的'/'字符。cookie

Index的狀況

靜態服務器會自動查找由請求指定的目錄下名爲index有特定後綴的文件,後綴能夠由你設定。目前支持的後綴有html,htm及md三種。設置方法以下。框架

jsdemo.config.of('built-in').of('static-server').val('indexFile',['.html','.md']);
//allow index file with suffix as html or md
//you get /views/index.html when request for path /views

另外,後綴名的優先級同他們在配置數組裏的順序一致,以上文爲例,html文件優先於md文件,兩者同時存在時會返回html文件。

相關文章
相關標籤/搜索