const waitTime = (time = 100) => { return new Promise((resolve) => { setTimeout(() => { resolve(true); }, time); }); }; async function getFakeCaptcha(req, res) { await waitTime(2000); return res.json('captcha-xxx'); } // 代码中会兼容本地 service mock 以及部署站点的静态数据 export default { // 支持值为 Object 和 Array 'GET /api/login/staff': { code: 0, data: { "staffId": "NcDlEdO0O0Oi", "categoryId": "McTlIdO0O0Oi", "username": "蔡频", "categoryTitle": "总部", "avatar": "/global/avatar/avatar_41", "qq": "2147422", "qualifications": "大专" } }, // GET POST 可省略 'GET /api/users': [ { key: '1', name: 'John Brown', age: 32, address: 'New York No. 1 Lake Park', }, { key: '2', name: 'Jim Green', age: 42, address: 'London No. 1 Lake Park', }, { key: '3', name: 'Joe Black', age: 32, address: 'Sidney No. 1 Lake Park', }, ], 'POST /api/login': async (req, res) => { const { password, username, type } = req.body; await waitTime(2000); if (password === '123456' && username === '蔡频') { res.send({ code: 0, data: { token: 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdGFmZklkIjoiTmNEbEVkTzBPME9pIiwiY2F0ZWdvcnlJZCI6Ik1jVGxJZE8wTzBPaSIsInVzZXJuYW1lIjoiXHU4NTIxXHU5ODkxIiwiY2F0ZWdvcnlUaXRsZSI6Ilx1NjAzYlx1OTBlOCIsImF2YXRhciI6IlwvZ2xvYmFsXC9hdmF0YXJcL2F2YXRhcl80MSIsInFxIjoiMjE0NzQyMiIsInF1YWxpZmljYXRpb25zIjoiXHU1OTI3XHU0ZTEzIiwiYXVkIjoiIiwiZXhwIjoxNjEyODQyNDg3LCJpYXQiOjE2MTI3NTYwODcsImlzcyI6IiIsImp0aSI6IjgyNWRmNTBjNjg3NDQ0ZDJhZDA1ZDNiNzhhOGE0YmVhIiwibmJmIjoxNjEyNzU2MDg3LCJzdWIiOiIifQ.Iexq-ep6YiVM61nEoCDSd72NS-Qh63Ll5vAhlxTgVEo' }, currentAuthority: 'admin', }); return; } if (password === 'ant.design' && username === 'user') { res.send({ status: 'ok', type, currentAuthority: 'user', }); return; } if (type === 'mobile') { res.send({ status: 'ok', type, currentAuthority: 'admin', }); return; } res.send({ status: 'error', type, currentAuthority: 'guest', }); }, 'POST /api/register': (req, res) => { res.send({ status: 'ok', currentAuthority: 'user', }); }, 'GET /api/500': (req, res) => { res.status(500).send({ timestamp: 1513932555104, status: 500, error: 'error', message: 'error', path: '/base/category/list', }); }, 'GET /api/404': (req, res) => { res.status(404).send({ timestamp: 1513932643431, status: 404, error: 'Not Found', message: 'No message available', path: '/base/category/list/2121212', }); }, 'GET /api/403': (req, res) => { res.status(403).send({ timestamp: 1513932555104, status: 403, error: 'Unauthorized', message: 'Unauthorized', path: '/base/category/list', }); }, 'GET /api/401': (req, res) => { res.status(401).send({ timestamp: 1513932555104, status: 401, error: 'Unauthorized', message: 'Unauthorized', path: '/base/category/list', }); }, 'GET /api/login/captcha': getFakeCaptcha, };