|  |  | 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}`)
 | 
						
						
						
							|  |  | }) |