基于nodejs+vue+uniapp微信小程序的新生自助报到系统 g48yd

学生微信小程序端的主要功能有:
采用B/S模式架构系统,开发简单,只需要连接网络即可登录本系统,不需要安装任何客户端。开发工具采用VSCode,前端采用Vue+ElementUI,后端采用Node.js,数据库采用MySQL。
 涉及的技术栈
1) 前台页面:
页面结构布局采用Vue框架,可能会使用到第三方组件库Element-ui或View Design组件库、axios发送请求、html和less语法。
2) 后台服务器:
服务器搭建采用基于node的Express框架快速搭建服务器,需要引入mysql模块进行对数据库的操作
3) 数据库:
mysql数据库,Navicat可视化工具辅助操作数据库            

该系统将采用B/S结构模式,开发软件有很多种可以用,本次开发用到的软件是vscode,用到的数据库是MySQL,为了更加便捷地使用数据库,用到了MySQL的可视化工具SQLyog/Navicat。
使用Vue和ElementUI框架搭建前端页面,后端使用Nodejs来搭建服务器,并使用MySQL,通过axios完成前后端的交互 

开发语言 node.js
前端:vue.js+ElementUi
数据库:mysql 
数据库工具:Navicat/SQLyog都可以
开发运行软件:VScode/webstorm/hbuiderx均可
框架:Express
1.学生注册和登陆系统
2.新生查看报道指南
3.新生查看交通指导 
4.新生查看宿舍信息
5.新生查看报到接站信息
6.新生查看军训服装信息
7.新生查看志愿者信息,对志愿者在线咨询
8.可以在线修改个人信息
9.在线申请宿舍
10.新生在线办理一卡通
11.查看缴费信息,在线缴费

志愿者的主要功能有:
1.志愿者登陆系统
2.个人中心:志愿者修改密码和个人信息
3.在线咨询管理:查看新生的咨询信息,对咨询进行回复
4.咨询回复管理:查看对新生的咨询回复
5.退出登陆
管理员的主要功能有:
1.管理员输入账户登陆后台
2.个人中心:管理员修改密码和账户信息
3.志愿者管理:对志愿者信息进行添加,删除,修改,查询
4.学生管理:对注册的学生信息进行添加,修改,删除,查询
5.交通指导管理:对交通指导进行添加,修改,删除,查询
6.宿舍信息管理:对宿舍信息进行添加,修改,删除,查询
7.宿舍申请管理:对学生的宿舍申请信息进行审核
8.在线咨询管理:对学生在线咨询信息进行修改,删除,查询
9.咨询回复管理:对志愿者回复学生的咨询信息进行查看,删除,修改
10.报到接站管理:管理员对报到接站信息进行添加,删除,修改,查询
11.军训服装管理:对军训服装信息进行添加,修改,删除,查询
12.选购服装管理:对新生选购的服装信息进行查看,修改,删除
13.一卡通办理管理:对新生办理的一开通进行审核,删除,修改,查询
14.缴费信息管理:对新生的缴费信息进行查询,修改,删除
15.报到指南管理:对新生报到指南信息进行添加,修改,删除,查询
16.轮播图管理:对系统的轮播图进行添加,修改,删除,查询新生报到系统,

import { version } from '../../package.json'
import { Router } from 'express'
import { Op } from 'sequelize'
import toRes from '../lib/toRes'
import UsersModel from '../models/UsersModel'
import jwt from 'jsonwebtoken'

export default ({ config, db }) => {
	let api = Router()

	// 用户登录接口
	api.post('/login', async (req, res) => {

		try {

			let userinfo = await UsersModel.findOne({ where: { username: req.query.username, password: req.query.password } })
			if (userinfo === null) {
				toRes.session(res, -1, '用户名或密码错误!')
				return;
			}

			const token = jwt.sign(
				{
					id: userinfo.dataValues.id,
					username: userinfo.dataValues.username,
					role: userinfo.dataValues.role
				},
				config.jwtSecret,
				{
					expiresIn: 60 * 60 * 24 * 1
				}
			)

			userinfo.dataValues.token = token
			delete userinfo.dataValues.password
			req.session.userinfo = userinfo

			toRes.session(res, 0, '登录成功!', token)
		} catch(err) {

			toRes.session(res, 500, '服务器错误!', '', 500)
		}
	})

	// 用户退出接口
	api.all('/logout', (req, res) => {

		if (!toRes.auth(req, res, '管理员')) return
		
		req.session.destroy(err => {
			toRes.session(res, 0, '退出成功!')
		})
	})

	// 注册接口
	api.post('/register', async (req, res) => {

		try {

			const userinfo = await UsersModel.create(req.body)

			if (userinfo === null) {

				toRes.session(res, -1, '注册失败!')
			} else {

				toRes.session(res, 0, '注册成功!')
			}
		} catch(err) {
			
			toRes.session(res, 500, '服务器错误!', '', 500)
		}
	})

	// 获取session的接口
	api.all('/session', async (req, res) => {

		try {

			if (!toRes.auth(req, res, '管理员')) return
			
			toRes.record(res, 0, await UsersModel.findOne({ where: { id: req.session.userinfo.id } }))
		} catch(err) {
			
			toRes.session(res, 500, '服务器错误!', '', 500)
		}
	})

	// 分页接口(后端)
	api.get('/page', async (req, res) => {

		try {

			if (!toRes.auth(req, res, '管理员')) return

			let page = parseInt(req.query.page) || 1
			let limit = parseInt(req.query.limit) || 10
			let sort = req.query.sort || 'id'
			let order = req.query.order || 'asc'

			let result = await UsersModel.findAndCountAll({
				order: [[sort, order]],
				offset: (page - 1) * limit,
				limit
			})
			
			result.currPage = page
			result.pageSize = limit

			toRes.page(res, 0, result)
		} catch(err) {
			
			toRes.session(res, 500, '服务器错误!', '', 500)
		}
	})

  • 6
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值