前面已经实现了登陆和注册功能,那如今先作后台管理这部分,这部分作好了之后再作前台的展现。git
// 登陆 router.post('/login', function (req, res, next) { var userName = req.body.userName var password = req.body.passWord if (userName === '123' && password === '123') { responseData.success = true responseData.message = '登陆成功' responseData.data = { userName: '123', } responseData.data.token = jwt.sign({data: {_id:'123456789',username:'123'},exp: Math.floor(Date.now() / 1000) + (60 * 60 * 12)}, 'jwt-secret') res.json(responseData) return } else { responseData.success = false responseData.message = '您还不是管理员' res.json(responseData) } });
2.展现用户列表的功能:展现全部用户、展现近一周用户、搜索、建立、分页github
// 获取用户列表(类型:all全部用户,week近一周的用户) router.post('/user/userList', (req, res, next) => { let page = parseInt(req.query.page) let limit = parseInt(req.query.pageSize) let queryType = req.body.type let skip = limit*page let orderkey = req.query.orderkey // 排序的字段 let sequence = req.query.sequence // true 顺序, false倒序 let searchKey = req.query.searchKey var sort = {} // 升序 sort[orderkey] = 1 if (sequence === 'false') { // 根据日期将数据库倒序排列,最新注册的排列在最前 sort[orderkey] = -1 } if (queryType === 'all') { // 所有用户 let totalCount = 0 let search = {} if (searchKey.length > 0) { search = {userName: searchKey} } User.find(search).count().then((count) => { totalCount = count User.find(search).sort(sort).limit(limit).skip(skip).then((users) => { responseData.success = true responseData.message = '' responseData.data = users responseData.total = totalCount responseData.totalPage = totalCount%limit === 0 ? parseInt(totalCount/limit):parseInt(totalCount/limit)+1 res.json(responseData) }).catch((err) => { responseData.success = false responseData.message = err.message responseData.total = 0 responseData.totalPage = 0 res.json(responseData) }) }) } if (queryType === 'week') { // 近一周 let oldDay = moment().add(-7, 'days').calendar() let totalCount = 0 let search = {} let conditions = {creatDate: {$gte: new Date(oldDay)}} if (searchKey.length > 0) { search = {userName: searchKey} conditions = { $and: [ {creatDate: {$gte: new Date(oldDay)}}, search ] } } User.find(conditions).count().then((count) => { totalCount = count User.find(conditions).sort(sort).limit(limit).skip(skip).then((users) => { responseData.success = true responseData.message = '' responseData.data = users responseData.total = totalCount responseData.totalPage = totalCount%limit === 0 ? parseInt(totalCount/limit):parseInt(totalCount/limit)+1 res.json(responseData) }).catch((err) => { responseData.success = false responseData.message = err.message responseData.total = 0 responseData.totalPage = 0 res.json(responseData) }) }) } })
3.关于blogadmin的布局部分可参考具体的demo。效果展现数据库