同步操作将从 angleInvoke/mock-server 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
开发 模拟 接口 服务 项目
项目 基于 express + mockjs
实现 快速开发 接口 对接 api
$ git clone https://gitee.com/nuokwan_backend_group/mock-server.git # 下载项目源码
$ cd mock-server # 切换到项目目录
$ npm install # 安装项目依赖
$ npm i -g nodemon # 安装 nodemon
$ npm run dev # 开发,项目启动 自动监听 修改 依赖 nodemon
目录说明
apis --- mock 接口文件
bin --- 项目上线启动脚本存目录
-- www --- 服务启动脚本
config --- 相关配置存储目录
public --- 静态文件存储目录
view --- html模板存储目录
app.js --- 应用服务构造脚本
项目 在 遵从 express 开发模式 上
增加了 自动 路由发现 , 在 config/app.js 配置中 apiDirs 指定目录中
添加 对应 mock api js 文件 暴露对应信息对象即可(系统启动时会自动扫描加载)
const {dispatcher} = require('../core/controller');
const handler = (req,res,next)=>{
// xxx
};
const path = 'api/'; // 资源对外路由
const prefix = '/'; // 公共前缀,默认 '/'
// 暴露 对应 请求方法 (get,post,put,delete)
const controller = dispatcher().get(prefix,handler);
module.exports = { controller,path,prefix }
config 目录中 配置说明
app.js http-server 相关配置
const app = {
appUrl : 'http://localhost', // 应用域名
port : 80, // http-server 监听端口
apiDirs : [path.join(__dirname, '../apis')], // api mock 目录
staticDir : path.join(__dirname, '../public'), // 静态文件存储目录
viewDir : path.join(__dirname, '../views'), // HTML模板存储目录
loggerMode : 'dev', // 日志模式
// app.set express 应用配置
settings : {
'view engine' : 'pug',
'views': path.join(__dirname, '../views')
},
// app.use express 相关插件|中间件
plugins : require('./plugins'),
}
plugins.js 插件配置
const engine = require('../core/serverEngine');
const cookieParser = require('cookie-parser');
const apiCreateError = require('../core/middlewares/notFoundHandler');
const logger = require('morgan');
const createLogger = (app) => {
return logger(app.siteconfig.loggerMode);
};
const errorRender = (err, req, res, next) => {
if (next instanceof Function) {
next();
}
console.log(res.body);
if (res.body) {
return;
}
// set locals, only providing error in development
res.locals.message = err.message;
res.locals.error = req.app.get('env') === 'development' ? err : {};
// render the error page
res.status(err.status || 500);
res.render('error');
};
const createStatic = (app) => {
return engine.static(app.siteconfig.staticDir);
};
const plugins = [
engine.json(),
cookieParser(),
{register: createLogger}, // 动态注册插件 依赖 应用配置
engine.urlencoded({extended: false}),
{register: createStatic},
errorRender, // Function express 插件
apiCreateError, // catch 404 and forward to error handler
];
为 本地开发 方便切换 mock 服务(方便本地开发 控制),提供了 proxy.js 工具脚本
public/javascripts/proxy.js 启动代理脚本
$ #第一个参数 : 本地开发地址
$ #第二个参数 : 远程真实api域名地址|远程 mock服务地址
$ #第三个参数 : 本地代理 监听的端口
$ node ./public/javascripts/proxy.js http://localhost http://mockserver.word-server.com/mintee 80
如果 使用 doclever 服务 mock , 可是使用 net.js 启动本地代理服务
public/javascripts/net.js doclever 代理启动脚本
$ node ./public/javascripts/net.js http://localhost http://mockserver.word-server.com/mintee 80
proxy.js 源于 net.js , net.js ES6 改造版
去除相关 header doclever header
lodash js 工具库
mockjs
express 4.x
cookie-parser
morgan express logger
pug HTML 模板引擎
感谢开源平台 doclever
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。