作者主页:编程指南针

作者简介:Java领域优质创作者、CSDN博客专家 、掘金特邀作者、多年架构师设计经验、腾讯课堂常驻讲师

主要内容:Java项目、毕业设计、简历模板、学习资料、面试题库、技术互助

收藏点赞不迷路  关注作者有好处

文末获取源码 

项目编号:BS-QD-007

一,环境介绍

开发技术:Vue+Nodejs+ElementUI

数据库:Mysql: mysql5.7

应用服务器:nodejs

开发工具:IDEA或VSCode

二,项目简介

   本系统主要基于前端开发技术,使用Vue+Nodejs来开发实现一款游戏资讯信息平台网站。主要实现了前端用户在查查看游戏资讯、分类浏览、在线交流互动、查看最新发布的游戏信息、游戏装备信息,完成详细浏览和视频观看,并进行点赞、收藏、评论等操作。后台管理员主要完成用户管理、资讯管理、资讯分类管理、游戏管理、游戏分类管理、装备管理、装备分管理、公告管理等。

三,系统展示

下面展示一下游戏资讯信息平台的实现界面。

主界面如下

前端毕业设计|基于Vue+Nodejs实现游戏资讯平台

资讯浏览:含有热点推荐

前端毕业设计|基于Vue+Nodejs实现游戏资讯平台

 分类查看游戏资讯

前端毕业设计|基于Vue+Nodejs实现游戏资讯平台

游戏浏览

前端毕业设计|基于Vue+Nodejs实现游戏资讯平台 

 游戏详情

前端毕业设计|基于Vue+Nodejs实现游戏资讯平台

 用房注册

前端毕业设计|基于Vue+Nodejs实现游戏资讯平台

用房登录

前端毕业设计|基于Vue+Nodejs实现游戏资讯平台

 在线交流论坛

前端毕业设计|基于Vue+Nodejs实现游戏资讯平台

 个人中心

前端毕业设计|基于Vue+Nodejs实现游戏资讯平台

 后台管理展示

轮播图管理

前端毕业设计|基于Vue+Nodejs实现游戏资讯平台

公告管理

前端毕业设计|基于Vue+Nodejs实现游戏资讯平台

游戏资讯管理

前端毕业设计|基于Vue+Nodejs实现游戏资讯平台

 游戏管理

前端毕业设计|基于Vue+Nodejs实现游戏资讯平台

四,核心代码展示

用户注册后台服务接口

const md5 = require("md5");
var Controller = require("../core/controller.js");
/**
 * 登录
 */
class Register extends Controller {
	/**
	 * 构造函数
	 * @param {Object} config 配置参数
	 */
	constructor(config) {
		// 传参给父类构造函数
		super(
			Object.assign({
					// 选择的模板那路径模板
					tpl: "./register/",
					// 选择的服务
					service: "user",
				},
				config
			)
		);
	}
}
/**
 * 注册页
 * @param {Object} ctx http请求上下文
 */
Register.prototype.index = async function(ctx) {
	var group_list = await $.services["user_group"].get_list({}, Object.assign({}, this.config));
	return await ctx.render(this.config.tpl + "index.html", {
		group_list
	});
};
/**
 * 注册API
 * @param {Object} ctx http请求上下文
 */
Register.prototype.api = async function(ctx) {
	var user = $.services.user;
	var body = ctx.request.body;
	var username = body.username;
	var obj = await user.get_obj({
		username
	});
	if (obj) {
		return {
			error: {
				code: 70000,
				message: "账户名已存在",
			},
		};
	} else {
		var password = md5(body.password);
		var nickname = body.nickname;
		var user_group = body.user_group;
		var email = body.email;
		var email_state= body.hasOwnProperty('email_state') ? body.email_state : 0;
		var phone = body.phone;
		var phone_state= body.hasOwnProperty('phone_state') ? body.phone_state : 0;
		var avatar = body.avatar;
		var bl_reg = await user.add({
			username,
			password,
			nickname,
			user_group,
			email,
			email_state,
			phone,
			phone_state,
			avatar
		});
		if (bl_reg) {
			return {
				result: "注册成功"
			};
		} else {
			return {
				error: {
					code: 70000,
					message: "注册失败",
				},
			};
		}
	}
};
module.exports = Register;

用户管理后台服务接口

var Controller = require('../core/controller.js');
const md5 = require("md5");
/**
 * 用户
 */
class User extends Controller {
	/**
	 * 构造函数
	 * @param {Object} config 配置参数
	 */
	constructor(config) {
		// 传参给父类构造函数
		super(Object.assign({
			// 选择的模板那路径模板
			tpl: './user/',
			// 选择的服务
			service: 'user',
			// 注册get API路由
			get_api: ["state", "quit"]
		}, config));
	}
}
/**
 * 获取用户登录状态
 * @param {Object} ctx http请求上下文
 */
User.prototype.state = async function(ctx) {
	var token = ctx.headers["x-auth-token"];
	// 根据登录态获取用户ID
	var access_token =  await $.services.access_token.get_obj({token});
	if(access_token && access_token.user_id ){
		var user = await this.service.get_obj({"user_id":access_token.user_id});
		if (user) {
			user.token = token;
			return {
				result: {obj: user}
			}
		} else {
			return {
				error: {
					code: 50000,
					message: "账户未登录!"
				}
			}
		}
	}else {
		return {
			error: {
				code: 50000,
				message: "账户未登录!"
			}
		}
	}
};
/**
 * 退出登录
 * @param {Object} ctx http请求上下文
 */
User.prototype.quit = async function(ctx) {
	var user = ctx.session.user;
	if (user) {
		ctx.session.user = null;
		var token = ctx.headers["x-auth-token"];
		if (token) {
			var service = $.services["access_token"];
			await service.del({
				token
			});
		}
		return {
			result: {
				bl: true,
				tip: "已退出"
			}
		}
	} else {
		return {
			error: {
				code: 50000,
				tip: "账户未登录!"
			}
		}
	}
};
/**
 * 添加用户
 */
User.prototype.add = async function(ctx) {
	ctx.request.body.password = md5(ctx.request.body.password);
	var result = await this.service.add(ctx.request.body, this.config);
	if (this.service.error) {
		return {
			error: this.service.error,
		};
	}
	return {
		result,
	};
}
module.exports = User;

五,项目总结

   整个系统功能实现完整,采用Vue+Nodejs开发,并采用前后端分离的方式开发实现,前端页面和后台页面采用独立的工程实现,界面设计丰满,充实而且大方得体,是一个不错的前端毕业设计作品。

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。