文章来源:https://www.npmjs.com/package/ftl-server

源代码可参考:https://github.com/szmtcjm/ftl-server/blob/master/lib/config.js

ftl-server 是一前端开发工具,支持解析freemarker模板,模拟后端接口,反向代理等功能。

特性

  • 解析freemarker模板
  • 静态资源服务
  • mock请求
  • 代理请求
  • livereload
  • weinre

安装

1.  npm install ftl-server -g

2. 在工程目录下新建配置文件,比如ftl.config.js,配置文件格式如下:

module.exports = {
public: 'E:\\somedir\\public', //静态文件目录
port: '80', //端口号,默认为80
hot: true, //布尔值,是否开启livereload;开启后修改css会自动更新页面的样式,修改ftl/js/图片等会自动刷新页面
watch: [require.resolve('./page.ftl'), 'E:\\ftlServer\page.mock'], //需要监控的额外的配置文件,值为数组
remoteDebug: { //remoteDebug 针对weinre的配置
browser: 'firefox'
},
ftl: { //配置freemarker的解析
base: 'E:\\somedir\\ftl', //配置freemarker模板目录
dataFiles: ['E:\\somedir\\data.ftl'], //配置ftl模板需要的数据文件,也就是造假数据的文件
global: { //ftl共享的数据文件 },
'ftlfile.ftl': function(req, res) { //key ftlfile.ftl表示要渲染的ftl文件, value表示该渲染该ftl的数据 
return {
saleActivityMap: {
"000008": {
activityStatus: 'actived'
}
}
}
} },
mock: [{ //接口模拟,模拟请求
path: '/request', //请求名
method: 'get', //请求方法
status: '200', //请求状态
header: { //请求头 },
response: function(req, res) { //请求的返回内容
return {
a: 1,
B: 2
}
}
}, 'E:\\mock\\mock.js'], //文件格式见下面的源代码
proxy: [{
path: '/proxy1', //表示需要反向代理的请求path
target: 'http://localhost:3000' //表示代理的目标地址
}
]
}

E:\\mock\\mock.js格式如下:

// /dir/mock.js
// 可以export一数组,或者直接一对象
module.exports = [{
path: '/mock',
method: 'post',
response: function(req, res) {
return {
result: true
}
}
}]

执行 fs -c ./ftl.config.js -p 1008   或  ftl-server -c ./ftl.config.js -p 1008 或 fs

3. 访问 http://localhost:1008/,即可直接浏览目录下的ftl页面。

项目实践

1. 项目根目录下新建 ftl.config.js

1.1默认配置文件名为 ftl.config.js,启动时bash命令执行  fs  或  ftl-server

1.2如果是自定义配置文件名称,比如 config.js,则每次配置文件改动,或者启动ftl server时,bash命令需执行   fs -c ./config.js   或  ftl-server -c ./config.js

需要重新设置配置文件的路径。

2. ftl.config.js 代码内容

module.exports = {
public: '/Users/xx/Projects/bbb/src/main/webapp',
port: '10080',
hot: true,
ftl: {
base: '/Users/xx/Projects/bbb/src/main/webapp/WEB-INF/template',
},
mock: ['/Users/xx/Projects/bbb/src/main/webapp/WEB-INF/template/fakeData/ajax/cc.js'],
proxy: [{
path: '/proxy1',
target: 'http://localhost:3000'
}
]
}

一些不常用的配置项没加进去,ftl.dataFiles里不能配置ftl文件的目录,只能配名字,这点不是很方便。

如果页面需要假数据,直接在页面上assign假数据就可以了。或者将assign的假数据单独建个ftl文件,然后在需要假数据的ftl include进去就行。

3. mock数据请求

mock配置页面需要发的一些请求,数组表示。如下:

/Users/xx/Projects/bbb/src/main/webapp/WEB-INF/template/fakeData/ajax/cc.js
module.exports = [{
path: '/ajax.html',
method: 'get',
status: 200,
response: function(req, res) {
return {
"code": "200",
"msg": "操作成功"
}
}
}]

4.启动服务

bash命令执行   fs   或  ftl-server

可以使用  fs --help  查看其它的操作。

前后端分离工具之ftl-server的更多相关文章

  1. 前后端分离之【接口文档管理及数据模拟工具docdoc与dochelper】

    前后端分离的常见开发方式是: 后端:接收http请求->根据请求url及params处理对应业务逻辑->将处理结果序列化为json返回 前端:发起http请求并传递相关参数->获取返 ...

  2. 超简单工具puer——“低碳”的前后端分离开发

    本文由作者郑海波授权网易云社区发布. 前几天,跟一同事(MIHTool作者)讨教了一下开发调试工具.其实个人觉得相较于定制一个类似MIHTool的Hybrid App容器,基于长连的B/S架构的工具其 ...

  3. Post方式 前后端分离开发postman工具首次使用心得及注意事项

    使用前:2009年以前,一直用asp(非asp.net)语言开发网站,网页调用数据等操作,是通过asp标签<%%>嵌入到HTML标签语言中.相隔八年后,听说最近都是MVC后又什么前后端分离 ...

  4. FastAPI + Vue 前后端分离 接口自动化测试工具 apiAutoTestWeb

    apiAutoTestWeb使用说明 apiAutoTestWeb是为apiAutoTest的可视化版本,其采用前后端分离(FastAPI + Vue2)方式实现 具体使用: Python3 + Fa ...

  5. [转] 前后端分离开发模式的 mock 平台预研

    引入 mock(模拟): 是在项目测试中,对项目外部或不容易获取的对象/接口,用一个虚拟的对象/接口来模拟,以便测试. 背景 前后端分离 前后端仅仅通过异步接口(AJAX/JSONP)来编程 前后端都 ...

  6. Swagger - 前后端分离后的契约

    前后端分离 按照现在的趋势,前后端分离几乎已经是业界对开发和部署方式所达成的一种共识.所谓的前后端分离,并不是传统行业中的按部门划分,一部分人只做前端(HTML/CSS/JavaScript等等),另 ...

  7. 利用grunt-contrib-connect和grunt-connect-proxy搭建前后端分离的开发环境

    前后端分离这个词一点都不新鲜,完全的前后端分离在岗位协作方面,前端不写任何后台,后台不写任何页面,双方通过接口传递数据完成软件的各个功能实现.此种情况下,前后端的项目都独立开发和独立部署,在开发期间有 ...

  8. 基于 koajs 的前后端分离实践

    一.什么是前后端分离? 前后端分离的概念和优势在这里不再赘述,有兴趣的同学可以看各个前辈们一系列总结和讨论: 系列文章:前后端分离的思考与实践(1-6) slider: 淘宝前后端分离实践 知乎提问: ...

  9. 前后端分离之vue2.0+webpack2 实战项目 -- webpack介绍

    webpack的一点介绍 Webpack 把任何一个文件都看成一个模块,模块间可以互相依赖(require or import),webpack 的功能是把相互依赖的文件打包在一起.webpack 本 ...

随机推荐

  1. Composer管理PHP包

    安装 Composer包含两大逻辑部分:一个是用来存储包,另一个是命令行应用程序,帮助你发现.下载.更新和分享代码. $ cd/path/to/my/project $ curl -s http:// ...

  2. Hadoop环境常用命令

    用户可以通过dfsadmin -safemode value   来操作安全模式,参数value的说明如下: enter - 进入安全模式 leave - 强制NameNode离开安全模式 get - ...

  3. android 关于appcompat v7出错问题与解决

    1.appcompat_v7:应用兼容包,V7说的是版本7,即android2.1,这个兼容包支持2.1版本以上系统2.最近谷歌官方将兼容jar包与某些资源文件单独拿出来建立了一个android工程, ...

  4. Mac SVN 命令行

    Mac自带了SVN命令行,如我的升级到10.10(OSX yosemite)后命令行版本为1.7.10 以下是一些常用命令 1.将文件checkout到本地目录 svn checkout path(p ...

  5. 用Android Studio 开发Android应用

    目前AndroidStudio已经到了1.2版本了,我用了下,觉得还蛮好的,有些自动生成的资源,它会自动帮你管理.下面开始列一下,我的开发环境搭配.在开始前,你得有个VPN,可者代理.嗯.不然你下不了 ...

  6. no CONFIG_BQL

    [PATCH] net: make CONFIG_BQL actually end user configurable Without the defining string or help text ...

  7. Keil代码中for循环延时问题

  8. 10、WGET

    这个我看过比较好的  http://www.cnblogs.com/peida/archive/2013/03/18/2965369.html WGET 支持HTTP和FTP协议,断点续传功能,自动递 ...

  9. 13款经典BI项目报表&界面风格设计方案

    说明 1.方案取自报表开发工具FineReport案例的配色方案 2.所有设计方案图中已标注了字体.颜色与间隔距离等,可直接调用. 报表&界面风格设计方案展示 灰蓝界面 绿色与金色 蓝绿清新风 ...

  10. 带有天气预报的高大上web报表制作分享

    我用FineReport开发了挺多报表,但集成天气预报这样提高交互和人性化的还是第一次,所以跟大家分享下. 这个报表是综合的门店销售管理分析面板,可以查询业绩分析.店员销售分析,店铺排行分析(可以看出 ...