f2e-server專為前端打造的開發(fā)服務(wù)器
f2e-server 是基于nodejs平臺(tái)的HTTP服務(wù)器,提供了基本的模板引擎以及常用的前端工具。
a nodejs based http-server with easy-template-engine and several F2E-utils
集成Node.js 環(huán)境版本下載: 百度網(wǎng)盤
github: https://github.com/shy2850/node-server.git/
簡書文檔: http://www.jianshu.com/p/a1456b95baec/
changelog: change.log
-
安裝 f2e-server : $ npm install f2e-server
-
進(jìn)入服務(wù)器根目錄: $ cd node_modules/f2e-server
-
修改hosts[windows]:$ node hosts
-
啟動(dòng)f2e-server服務(wù):$ npm start 服務(wù)啟動(dòng)后,會(huì)在f2e-server外層目錄自動(dòng)生成 conf.js 文件, 可參考修改
-
恢復(fù)hosts[windows]:$ node hosts reset
-
配置文件參考: nodeLib/config/conf.js
文件服務(wù)器
f2e-server 提供基本的文件服務(wù)器功能, 支持通過配置文件索引項(xiàng)目根目錄絕對路徑 【root】
-
歡迎頁面配置相對root的路徑 【welcome】
-
404頁面配置文件絕對路徑 【notFound】
-
配置是否支持文件夾目錄展示 【fs_mod】
-
當(dāng)前服務(wù)端口號(hào) 【port】
-
當(dāng)期服務(wù)可支持最大并發(fā)鏈接數(shù) 【maxConnections】
模板引擎
f2e-server 默認(rèn)使用underscore模板, 參見 nodeLib/common/handle.js#L18
-
默認(rèn)開啟模板引擎 【runJs】 以及依賴的配置 【handle】
-
關(guān)閉后很多插件功能將失效
-
支持模板的引用和包含http://www.w3cfuns.com/blog-5443978-5399247.html
-
$include[引用片段路徑]
-
$belong[當(dāng)前片段被包含母版路徑]
-
$[placeholder] 包含母版中標(biāo)記引入片段位置
-
-
模板運(yùn)行時(shí)環(huán)境變量:
-
request.data: GET請求參數(shù)包裝, 如 request.data.type 表示GET請求參數(shù)type的值
-
request.post: POST請求參數(shù)包裝, 獲取方式同GET, __ 注:GET請求時(shí), request.post === null __
-
request.util:
-
request.$:
-
request.util.mime: f2e-server擴(kuò)展mime模塊
-
request.util.conf: 當(dāng)前服務(wù)配置
-
request.util.staticServer: 預(yù)留staticconf配置的url
-
request.$.title: 當(dāng)前請求路徑 pathname
-
request.$.host: 當(dāng)前host
-
request.$.fileList: 文件夾列表存儲(chǔ)
-
request: 包轉(zhuǎn)完成的當(dāng)前請求
-
response: 原生的響應(yīng)對象
-
require: nodejs 全局require
-
_: underscore源對象
-
資源合并和壓縮
-
服務(wù)器內(nèi)置 uglify-js 和 cssmin 支持, 【debug】 為false時(shí)開啟
-
使用 $include 功能可以進(jìn)行資源文件的動(dòng)態(tài)合并
中間件支持
f2e-server采用中間件的動(dòng)態(tài)解析模式, 參見 nodeLib/filter/middleware.js
-
默認(rèn)支持 less / coffee / jade / markdown 擴(kuò)展,npm install后直接使用
-
對于其他需要且未被收錄的擴(kuò)展, 強(qiáng)烈建議開發(fā)者自己嘗試修改源代碼支持
項(xiàng)目輸出
-
模板、 資源合并壓縮、中間件支持(或混搭使用) 均被支持輸出到結(jié)果文件目錄中 【output】
-
如果安裝相關(guān)圖片壓縮依賴的模塊, build默認(rèn)支持在構(gòu)建輸出結(jié)果時(shí)對png,jpg等類型圖片進(jìn)行無損壓縮
-
中間件中 在請求頭設(shè)置 middleware-type 屬性, 將能夠在輸出時(shí), 修改響應(yīng)的文件后綴名
-
如在開發(fā)中使用響應(yīng)后綴,建議參考 【agent】配置
服務(wù)器host轉(zhuǎn)發(fā)功能
f2e-server 支持本地環(huán)境通過不同的hosts域名分別請求不同的項(xiàng)目
-
nodeLib/config/conf.js 中所有返回key都被認(rèn)為是一組本地域名類型 (如:localhost / test.abc.com / test.xuan.news.cn)
-
如果多組配置使用了相同的端口號(hào), 將需要使用指定域名訪問(需要修改hosts文件)
-
在安裝目錄中提供了快速修改備份/恢復(fù) hosts文件的模塊,
-
可以直接使用 node hosts 修改 或 node hosts reset 恢復(fù)修改前的hosts文件
-
默認(rèn)使用windows環(huán)境的系統(tǒng)路徑 (linux/unix 請根據(jù)需求修改)
-
權(quán)限不足時(shí),拋出異常,請使用管理員權(quán)限運(yùn)行!
-
代理功能
f2e-server 方便的支持了代理遠(yuǎn)程請求功能 【agent】配置
-
get方法通過分析請求路徑,返回一組相關(guān)代理配置
-
host: 遠(yuǎn)程代理的host 默認(rèn)為 當(dāng)前host
-
port: 遠(yuǎn)程代理的端口號(hào), 默認(rèn)為 80
-
origin: 支持origin格式配置: 優(yōu)先級低于host&port, 因?yàn)樾枰獙?shí)時(shí)解析,性能不及host配置
-
path: 路徑轉(zhuǎn)換方式, 可以根據(jù)本地路徑轉(zhuǎn)換成遠(yuǎn)程指定其他路徑, 默認(rèn)跟遠(yuǎn)程路徑相同
-
cookie: 遠(yuǎn)程代理cookie ( 直接copy遠(yuǎn)程請求的請求頭中的cookie )
-
save: 代理請求資源保存到本地對應(yīng)文件目錄 ( 資源批量下載以及中間件模板編譯 )
-
插件功能
f2e-server 提供了一些有用的插件, 提倡開發(fā)者擴(kuò)展
-
agent: 快速代理跨域請求如 /agent?http://news.cn
-
config: 臨時(shí)修改當(dāng)前服務(wù)配置項(xiàng)[Beta版]
-
favicon.ico: 單獨(dú)進(jìn)行favicon.ico實(shí)現(xiàn)
-
prettify: 代碼的服務(wù)端highlight實(shí)現(xiàn), 支持遠(yuǎn)程請求同agent插件 /prettify?http://news.cn
-
psd: 讀取服務(wù)器目錄下的psd文件并且實(shí)時(shí)轉(zhuǎn)化成png, 展示到瀏覽器中, 同時(shí)支持了解析PSD源資源數(shù)據(jù),分別保存成png圖片(Beta)
-
upload: post請求處理使用該模塊實(shí)現(xiàn)(支持文件上傳)
