0.0.1 • Published 8 years ago
nether-swap v0.0.1
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) 的终极技能
0.0.1
8 years ago