基于nodejs平台的文件服务器: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
-
出于学习的目的,学习掌握nodejs的核心API,从一个应用着手。
-
出于对前端相关的新鲜的开发模式的兴趣,搭建了动态的less&coffeeScript解释器,方便的编码调试。
-
搜集常用的前端优化方案,主要是:javascript以及css文件的压缩,包括简单压缩和智能混淆,动态的支持,实现从服务端实现资源的优化【压缩,合并(待完成)】。
-
提供页面拆分/包含的功能,方便统一文档框架的维护。
-
提供基本的模板引擎,完全javascript语句实现服务端脚本功能。
模板引擎
1. 使用<%%>区分js代码和原生文本
<% for(var i = 0; i < 4; i++) {%> <h2><% if(i%2==0){ %>Welcome <%} else{%>YOU<%} %></h2> <% } %>
转换后的HTML文本
<h2>Welcome </h2> <h2>YOU</h2> <h2>Welcome </h2> <h2>YOU</h2>
2. 输出变量后台变量<% echo(str) %> 或者 <%=str%>
<div id="hd"> <% echo( new Date() ) %> <%= "hello world!"%> </div>
3. 包含和布局:
-
include : $include[包含文件路径],该路径使用相对项目根目录的绝对路径。
-
belong:$belong[布局文件路径],路径同上,页面输出将把当前内容替换 布局文件中的$[placeholder] 以后输出。
4. 页面支持的API&参数:
-
支持ECMAScript核心API, 支持nodejs-require 。
-
页面支持 参数对象包括:
-
请求来源request(原生的 http.ClientRequest 对象),用来获取请求参数和信息;
-
response( http.ServerResponse 对象),可以改写服务端输出的所有信息。
-
request自定义参数:
-
request.data: 存储GET请求获取的所有参数信息,没有参数时为: {};
-
request.post: 存储POST请求参数信息,非POST请求时为: null;
-
request.util : 预留的工具参数绑定,目前只有一个mime-module对象,request.util.mime。
-
reque st.$ : 通过服务端操作存储其他信息供页面使用,主要在显示文件列表中有使用样例。
工具
-
LESS 动态支持,需要使用.less后缀命名文件 (可以使用sublime或者webstorm等进行编辑,具有高亮提示) ,从URI直接访问将获取编译后的css,可动态调试。
-
coffeeScript 动态支持, 需要使用.coffee后缀 (可以使用sublime或者webstorm等进行编辑,具有高亮提示) , 从URI直接访问将获取编译后的javascript代码,格式可能让你很不爽。
-
压缩支持: 支持css去除空白的cssmin,以及 uglify-js 对javascript以及coffeeScript编译后的js进行压缩。
-
支持简单的get请求代理,如: /agent? http://news.cn
-
文件上传(beta): /upload?uploadUrl=/uploads&target=/demo/upload.json
-
uploadUrl : 文件上传地址(绝对路径); 默认在服务器所在文件夹。
-
target: 数据返回页面(绝对路径); 默认由服务器提供的模板。