4 Star 6 Fork 2

云香水识是释梵 / node-server

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README
BSD-3-Clause

f2e-server

f2e-server 是基于nodejs平台的HTTP服务器,提供了基本的模板引擎以及常用的前端工具。

a nodejs based http-server with easy-template-engine and several F2E-utils

点击进入 f2e-server.com 查看详细文档 或 点击链接加入群【f2e-server】:

changelog: change.log

全局安装

f2e-server 1.8.3 以后支持全局安装

  • 安装: $ npm install f2e-server -g
  • 启动:$ f2eserver start 服务启动后,会在当前目录自动生成 f2e-conf.js 文件, 可参考修改
  • 修改hosts:$ f2eserver hosts
  • 恢复hosts:$ f2eserver reset

局部安装

  • 安装: $ npm install f2e-server
  • 进入服务器根目录: $ cd node_modules/f2e-server
  • 启动:$ npm start 服务启动后,会在f2e-server外层目录自动生成 conf.js 文件, 可参考修改
  • 修改 hosts:$ node hosts
  • 恢复 hosts:$ node hosts reset
  • 配置文件参考: nodeLib/config/conf.js

文件服务器

f2e-server 提供基本的文件服务器功能, 支持通过配置文件索引项目根目录绝对路径 【root

  • 欢迎页面配置相对root的路径 【welcome
  • 404页面配置文件绝对路径 【notFound
  • 配置是否支持文件夹目录展示 【fs_mod
  • 当前服务端口号 【port
  • 当期服务可支持最大并发链接数 【maxConnections

模板引擎

f2e-server 默认使用underscore模板, 参见 nodeLib/common/handle.js#L18

  • 默认开启模板引擎 【runJs】 以及依赖的配置 【handle
  • 关闭后很多插件功能将失效
  • 支持模板的引用和包含http://www.w3cfuns.com/blog-5443978-5399247.html
    • $include[引用片段路径]
    • $belong[当前片段被包含母版路径]
    • $[placeholder] 包含母版中标记引入片段位置
  • 模板运行时环境变量:
    • request: 包转完成的当前请求
      • request.data: GET请求参数包装, 如 request.data.type 表示GET请求参数type的值
      • request.post: POST请求参数包装, 获取方式同GET, __ 注:GET请求时, request.post === null __
      • request.util:
        • request.util.mime: f2e-server扩展mime模块
        • request.util.conf: 当前服务配置
        • request.util.staticServer: 预留staticconf配置的url
      • request.$:
        • request.$.title: 当前请求路径 pathname
        • request.$.host: 当前host
        • request.$.fileList: 文件夹列表存储
    • response: 原生的响应对象
    • require: nodejs 全局require
    • _: underscore源对象

资源合并和压缩

  • 服务器内置 uglify-jscssmin 支持, 【debug】 为false时开启
  • 使用 $include 功能可以进行资源文件的动态合并

中间件支持

f2e-server采用中间件的动态解析模式, 参见 nodeLib/filter/middleware.js

  • 默认支持 less / coffee / jade / markdown 扩展,npm install后直接使用
  • 对于其他需要且未被收录的扩展, 强烈建议开发者自己尝试修改源代码支持

项目输出

  • 模板、 资源合并压缩、中间件支持(或混搭使用) 均被支持输出到结果文件目录中 【output
  • 如果安装相关图片压缩依赖的模块, build默认支持在构建输出结果时对png,jpg等类型图片进行无损压缩
  • 中间件中 在请求头设置 middleware-type 属性, 将能够在输出时, 修改响应的文件后缀名
  • 如在开发中使用响应后缀,建议参考 agent】配置

服务器host转发功能

f2e-server 支持本地环境通过不同的hosts域名分别请求不同的项目

  • nodeLib/config/conf.js 中所有返回key都被认为是一组本地域名类型 (如:localhost / test.abc.com / test.xuan.news.cn)
  • 如果多组配置使用了相同的端口号, 将需要使用指定域名访问(需要修改hosts文件)
  • 在安装目录中提供了快速修改备份/恢复 hosts文件的模块,
    • 可以直接使用 node hosts 修改 或 node hosts reset 恢复修改前的hosts文件
    • 默认使用windows环境的系统路径 (linux/unix 请根据需求修改)
    • 权限不足时,抛出异常,请使用管理员权限运行!

代理功能

f2e-server 方便的支持了代理远程请求功能 agent】配置

  • get方法通过分析请求路径,返回一组相关代理配置
    • host: 远程代理的host 默认为 当前host
    • port: 远程代理的端口号, 默认为 80
    • origin: 支持origin格式配置: 优先级低于host&port, 因为需要实时解析,性能不及host配置
    • path: 路径转换方式, 可以根据本地路径转换成远程指定其他路径, 默认跟远程路径相同
    • cookie: 远程代理cookie ( 直接copy远程请求的请求头中的cookie )
    • save: 代理请求资源保存到本地对应文件目录 ( 资源批量下载以及中间件模板编译 )

插件功能

f2e-server 提供了一些有用的插件, 提倡开发者扩展

  • agent: 快速代理跨域请求如 /agent?http://news.cn
  • build: 即项目输出
  • config: 临时修改当前服务配置项[Beta版]
  • favicon.ico: 单独进行favicon.ico实现
  • prettify: 代码的服务端highlight实现, 支持远程请求同agent插件 /prettify?http://news.cn
  • psd: 读取服务器目录下的psd文件并且实时转化成png, 展示到浏览器中, 同时支持了解析PSD源资源数据,分别保存成png图片(Beta)
  • upload: post请求处理使用该模块实现(支持文件上传)
Copyright (c) 2013, shy2850 All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. Neither the name of the {organization} nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

简介

f2e-server 专为前端打造的开发服务器 展开 收起
JavaScript
BSD-3-Clause
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
JavaScript
1
https://gitee.com/shiyangyangs/node-server.git
git@gitee.com:shiyangyangs/node-server.git
shiyangyangs
node-server
node-server
master

搜索帮助