const jsonServer = require('json-server') let Mock = require('mockjs') let Random = Mock.Random const server = jsonServer.create() const middlewares = jsonServer.defaults() const rules = require('./routes') const {HOST, PORT, DB_FILE, API} = require('./config.js') const DB = require(DB_FILE) const router = jsonServer.router(DB()) // 将所创建的数据对象传入,以之生成相应的路由 server.use(jsonServer.bodyParser) server.use(middlewares) server.post(`${API}/reg`, ({body:{username='', password=''}}, res) => { (username !== 'admin' && password) ? res.jsonp({ 'err': 0, 'msg': '注册成功', 'data': { username, password } }) : res.jsonp({ 'err': 1, 'msg': '注册失败' }) }) // 响应/mock/login,进行登录验证操作 server.post(`${API}/login`, ({body:{username='', password=''}}, res) => { console.log(username), (username === 'admin' && password === '123456') ? setTimeout(() => { // 由于本地请求速度较快,不方便loading动效显示利用延时器,模拟真实服务器请求速度 res.jsonp({ 'err': 0, 'msg': '登录成功', 'data': { 'token': '123', 'address': '打破', 'email': 'louis.lyr@outlook.com', 'tel': '15185724613', 'avatar': '' // Random.image('200x200', Random.color(), Random.word(2, 6)) } }) }, 2000) : setTimeout(() => { // 由于本地请求速度较快,不方便loading动效显示利用延时器,模拟真实服务器请求速度 res.jsonp({ 'err': 1, 'msg': '登录失败' }) }, 2000) }) // 自定义返回内容 router.render = (req, res) => { let status = '' let len = Object.keys(res.locals.data).length // 判断是否获取到mockJS模拟的数据 if (res.req.originalMethod === 'DELETE') { status = len === 0 } else { status = !!len } setTimeout(() => { // 由于本地请求速度较快,不方便loading动效显示利用延时器,模拟真实服务器请求速度 res.jsonp({ // 使用res.jsonp()方法将mockJS模拟生成的数据进行自定义包装后输出 err: status ? 0 : 1, msg: '操作' + (status ? '成功' : '失败'), data: res.locals.data }) }, 2000) } // router.render = (req, res) => { // console.log(req) // res.status(500).jsonp({ // error: 'error message here' // }) // } server.use(jsonServer.rewriter(rules)) // 根据需要重写路由匹配规则 server.use(router) // 安装路由 server.listen({ host: HOST, port: PORT }, function() { console.log(`JSON Server is running in http://${HOST}:${PORT}`) })