proxymock-cli
v0.1.2
Published
proxymock-cli
Downloads
5
Readme
proxymock-cli
proxymock-cli
how to use?
安装
yarn global add proxymock-li
或npm install proxymock-cli -g
执行
proxymock -d <mock data directory> [-s] [-l <log level>]
-d: mock数据文件存放目录, <必填>
-s: 是否设置系统代理为proxymock代理服务器的ip和端口, [选填]
-l: 日志级别, 默认级别`info`, 可选级别项: `debug`、`inf`o、`warn`、`error`, [选填]
- 日志打印目录为操作系统登录用户目录下的
.proxymock
文件夹, windows系统如C:\Users\your-pc-name\.proxymock
mock文件指令规则
以单行注释语法
//
作为mock文件规则的指令, 指令不支持多行注释语法/**/
// proxymock: [^] <GET|POST|PUT|DELETE> <url>
此指令必选; 指令中<>
表示必填,[]
表示选填,|
表示多选一// proxymock-disable: [true|false]
此指令可选<url>
部分支持正则表达式
mock文件示例
// proxymock: ^ GET https://weather.qq.com/api/shanghai.do
// proxymock-disable: false
module.exports = {
desc: '艳阳当空、烈日炎炎',
temperature: 38,
feeling: 'hot'
}
// proxymock: GET http://www.weather.cn/api
/**
* req: 可用 { query, params, body, header } 等参数作为条件导出不同mock数据
* res: 可用 .json(), .end() 等方法回传mock数据
*/
module.exports = async function(req, res, rawData) {
await new Promise(resolve => setTimeout(() => resolve(), 3000)); // 模拟请求延迟3秒
if (req.query.type === 'hot') {
return {
desc: '艳阳当空、烈日炎炎',
temperature: 38,
feeling: 'hot'
};
}
if (req.query.type === 'cold') {
res.json({
desc: '大雪纷飞、寒风刺骨',
temperature: -25,
feeling: 'cold'
});
}
};
// proxymock: GET /weather\.[a-z]{2}\.com\/api/
// proxymock-disable: false
// 正则示例
module.exports = async function(req, res, rawData) {
return { feeling: 'cool', temperature: 22, desc: '秋高气爽' };
};