基于nodejs平臺的文件服務器:node-server

jopen 10年前發布 | 36K 次閱讀 node-server

node-server

基于nodejs平臺的文件服務器,提供了基本的模板引擎以及常用的前端工具。
a nodejs based file-system-server with easy-template-engine and several F2E-utils

github:  https://github.com/shy2850/node-server.git  

npm:  npm install f2e-node-server  

why

  1. 出于學習的目的,學習掌握nodejs的核心API,從一個應用著手。

  2. 出于對前端相關的新鮮的開發模式的興趣,搭建了動態的less&coffeeScript解釋器,方便的編碼調試。

  3. 搜集常用的前端優化方案,主要是:javascript以及css文件的壓縮,包括簡單壓縮和智能混淆,動態的支持,實現從服務端實現資源的優化【壓縮,合并(待完成)】。

  4. 提供頁面拆分/包含的功能,方便統一文檔框架的維護。

  5. 提供基本的模板引擎,完全javascript語句實現服務端腳本功能。

模板引擎

1. 使用<%%>區分js代碼和原生文本

  1.                     <% for(var i = 0; i < 4; i++) {%>
                            <h2><% if(i%2==0){ %>Welcome <%} else{%>YOU<%} %></h2>
                        <% } %>
                    

    轉換后的HTML文本

  2.                     <h2>Welcome </h2>     <h2>YOU</h2>    
                        <h2>Welcome </h2>     <h2>YOU</h2>
                    

      

2. 輸出變量后臺變量<% echo(str) %> 或者 <%=str%>  

  1.         <div id="hd">     <% echo( new Date() ) %> <%= "hello world!"%>
            </div>
        

3. 包含和布局: 

  • include : $include[包含文件路徑],該路徑使用相對項目根目錄的絕對路徑。

  • belong:$belong[布局文件路徑],路徑同上,頁面輸出將把當前內容替換 布局文件中的$[placeholder] 以后輸出。

4. 頁面支持的API&參數:

    • ? 支持ECMAScript核心API, 支持nodejs-require 。

    • 頁面支持 參數對象包括:

      1. 請求來源request(原生的 http.ClientRequest 對象),用來獲取請求參數和信息;

      2. response( http.ServerResponse 對象),可以改寫服務端輸出的所有信息。

      3. request自定義參數:

        1. request.data: 存儲GET請求獲取的所有參數信息,沒有參數時為: {};

        2. request.post: 存儲POST請求參數信息,非POST請求時為: null;

        3. request.util : 預留的工具參數綁定,目前只有一個mime-module對象,request.util.mime。

        4. reque ? st.$ : 通過服務端操作存儲其他信息供頁面使用,主要在顯示文件列表中有使用樣例。

工具

  1. LESS 動態支持,需要使用.less后綴命名文件 (可以使用sublime或者webstorm等進行編輯,具有高亮提示) ,從URI直接訪問將獲取編譯后的css,可動態調試。

    神馬是LESS

  2. coffeeScript 動態支持, 需要使用.coffee后綴  (可以使用sublime或者webstorm等進行編輯,具有高亮提示) , 從URI直接訪問將獲取編譯后的javascript代碼,格式可能讓你很不爽。

    CoffeeScript又是神馬

  3. 壓縮支持: 支持css去除空白的cssmin,以及 uglify-js 對javascript以及coffeeScript編譯后的js進行壓縮。

  4. 支持簡單的get請求代理,如: /agent? http://news.cn  

  5. 文件上傳(beta):  /upload?uploadUrl=/uploads&target=/demo/upload.json 

    • uploadUrl : 文件上傳地址(絕對路徑);  默認在服務器所在文件夾。

    • target: 數據返回頁面(絕對路徑); 默認由服務器提供的模板。

項目主頁:http://www.baiduhome.net/lib/view/home/1405607393359

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!