nether-swap
v0.0.1
Published
A express middleware for swapping static files.
Downloads
6
Readme
nether swap
一个 express
中间件,劫持静态文件的请求,如文件系统中该存在符合规则的模拟文件,返回模拟文件。
用法
后台
var express = require('express');
var swap = require('nether-swap');
var app = express();
app.use(swap());
app.use('/static', express.static('static-dir'))
系统文件
- /static/doudou-sdk.js (原始文件)
- /static/doudou-sdk.mock.js (模拟文件)
前端请求
<!-- 响应 /static/doudou-sdk.mock.js -->
<script src='/static/doudou-sdk.js'></script>
<script src='/static/doudou-sdk.js?version=0.0.1'></script>
<!-- 配置了 noswap 响应 /static/doudou-sdk.js -->
<script src='/static/doudou-sdk.js?noswap'></script>
<!-- 不存在 other-lib.mock.js 响应 /static/other-lib.js -->
<script src='/static/other-lib.js'></script>
API: swap(optsions)
options.redirect
(Boolean)
可选参数。
是否通过通过重定向的响应模拟问句。 默认为 false
,
options.rule
(Function)
可选参数。
匹配代理的规则。默认方法如下:
/**
* 将所有 *.js请求,响应为 *.mock.js
* @parem reqpath 请求路径
*/
function (reqpath) {
return reqpath.replace(/\.js($|\?.*)/, ".mock.js$1");
}
option.root
(String)
可选参数。
表示静态目录根目录。默认为 .
完整配置实例
// dependencies omitted
app.use(swap({
redirect: true,
rule: function () {
return reqpath.replace(/\.js($|\?.*)/, ".fake.js$1");
},
root: path.resolve(__dirname, './static-dir')
}))
开发/测试
# get the code
git clone <URL>
# install dependencies
npm i
# start test server
node test-server.js
# unit test
npm run test
名字
Nether Swap
,移形换位,是 Dota/Dota 2
英雄——复仇之魂
(Vengeful Spirit
) 的终极技能