From 407564d490ba02d7c372f5ce9af5f25ff133b476 Mon Sep 17 00:00:00 2001 From: wang <3202024218@qq.com> Date: Wed, 18 Jun 2025 10:44:37 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8E=A5=E5=85=A5=E8=BF=9C=E7=AB=AF=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E5=BA=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- goldminer/README.md | 37 +++++++------- goldminer/backend/app.py | 45 ++++++++++++++++-- goldminer/backend/goldminer.db | Bin 24576 -> 0 bytes goldminer/backend/instance/goldminer.db | Bin 24576 -> 0 bytes goldminer/backend/run_server.py | 7 ++- ...98638025d37e2b0d25b48b5724ab7c95f99fb.json | 1 + .../node_modules/.cache/eslint/123ee647.json | 2 +- goldminer/start.bat | 3 +- 8 files changed, 68 insertions(+), 27 deletions(-) delete mode 100644 goldminer/backend/goldminer.db delete mode 100644 goldminer/backend/instance/goldminer.db create mode 100644 goldminer/frontend/node_modules/.cache/babel-loader/cc6ca55790ce06b0d3a38d6c82998638025d37e2b0d25b48b5724ab7c95f99fb.json diff --git a/goldminer/README.md b/goldminer/README.md index 6bd82d93..d31926ef 100644 --- a/goldminer/README.md +++ b/goldminer/README.md @@ -18,25 +18,34 @@ goldminer/ │ │ └── main.js # 入口文件 │ ├── package.json │ └── vue.config.js -├── run.py # 启动脚本 -└── run.bat # 一键启动批处理文件 +└── start.bat # 一键启动批处理文件 ``` ## 系统架构 下图展示了黄金矿工游戏的系统架构: -![系统架构图](https://mermaid.ink/img/eyJjb2RlIjoiZ3JhcGggVEQ7XG4gICAgQVtcIueUqOaIt+a1j-imvuWZqFwiXSAtLT58orWpl3wgQltcIlZ1ZSDliY3nq69cIl1cbiAgICBCIC0tPnxBUEkg6K-35rGCfCBDW1wiRmxhc2sg5ZCO56uvXCJdXG4gICAgQyAtLT586ZSZ5bqmfCBCXG4gICAgXG4gICAgc3ViZ3JhcGggXCLliY3nq68gbG9jYWxob3N0OjgwODBcIlxuICAgIEIgLS0-fOa4suafk3wgRFtcIkFwcC52dWVcIl1cbiAgICBEIC0tPnzljIXlkKt8IEVbXCJHYW1lLnZ1ZVwiXVxuICAgIEUgLS0-fOa4uOaIj-mAu-i-kXwgRltcIua4uOaIj-W-queOr1wiXVxuICAgIEYgLS0-fOabtOaWsHwgR1tcIkNhbnZhcyDmuLLmn5NcIl1cbiAgICBlbmRcbiAgICBcbiAgICBzdWJncmFwaCBcIuWQjuerryBsb2NhbGhvc3Q6NTAwMFwiXG4gICAgQyAtLT585bGP5oCn5paH5Lu26LWE5rqQfCBIW1wiaW5kZXguaHRtbFwiXVxuICAgIEMgLS0-fEFQSXwgSVtcIi9hcGkvaGVhbHRoXCJdXG4gICAgZW5kIiwibWVybWFpZCI6e30sInVwZGF0ZUVkaXRvciI6ZmFsc2UsImF1dG9TeW5jIjp0cnVlLCJ1cGRhdGVEaWFncmFtIjpmYWxzZX0) +![系统架构图](https://mermaid.ink/img/eyJjb2RlIjoiZ3JhcGggVEQ7XG4gICAgQVtcIueUqOaIt+a1j-imvuWZqFwiXSAtLT58orWpl3wgQltcIlZ1ZSDliY3nq69cIl1cbiAgICBCIC0tPnxBUEkg6K-35rGCfCBDW1wiRmxhc2sg5ZCO56uvXCJdXG4gICAgQyAtLT586ZSZ5bqmfCBCXG4gICAgXG4gICAgc3ViZ3JhcGggXCLliY3nq68gbG9jYWxob3N0OjgwODBcIlxuICAgIEIgLS0-fOa4suafk3wgRFtcIkFwcC52dWVcIl1cbiAgICBEIC0tPnzljIXlkKt8IEVbXCJHYW1lLnZ1ZVwiXVxuICAgIEUgLS0-fOa4uOaIj-mAu-i-kXwgRltcIua4uOaIj-W-queOr1wiXVxuICAgIEYgLS0-fOabtOaWsHwgR1tcIkNhbnZhcyDmuLLmn5NcIl1cbiAgICBlbmRcbiAgICBcbiAgICBzdWJncmFwaCBcIuWQjuerryBsb2NhbGhvc3Q6NTAwMFwiXG4gICAgQyAtLT585bGP5oCn5paH5Lu26LWE5rqQfCBIW1wiaW5kZXguaHRtbFwiXVxuICAgIEMgLS0-fEFQSXwgSVtcIi9hcGkvaGVhbHRoXCJdXG4gICAgQyAtLT586ZO+5o6lIENsb3VkfCBKW1wiTXlTUUwg5LqR5pWw5o2u5bqTXCJdXG4gICAgZW5kIiwibWVybWFpZCI6e30sInVwZGF0ZUVkaXRvciI6ZmFsc2UsImF1dG9TeW5jIjp0cnVlLCJ1cGRhdGVEaWFncmFtIjpmYWxzZX0) + +## 数据库配置 + +本项目使用云端MySQL数据库存储用户数据、游戏记录和聊天信息。 + +数据库配置信息: +- 数据库类型:MySQL 8.4.3 +- 服务提供商:SQLPub.com +- 数据库名称:goldminer +- 连接地址:mysql2.sqlpub.com:3307 ## 安装和运行 ### 快速启动(推荐) -直接双击 `run.bat` 文件即可一键启动游戏。 +直接双击 `start.bat` 文件即可一键启动游戏。 这个脚本会自动: 1. 检查并安装所需的后端依赖 -2. 检查并创建必要的配置文件 +2. 连接到云端数据库并创建必要的表(如果不存在) 3. 同时启动后端和前端服务器 4. 自动在浏览器中打开游戏 @@ -70,21 +79,12 @@ python app.py cd goldminer/frontend ``` -2. 创建Babel配置文件(如果不存在) -``` -echo module.exports = { > babel.config.js -echo presets: [ >> babel.config.js -echo '@vue/cli-plugin-babel/preset' >> babel.config.js -echo ] >> babel.config.js -echo } >> babel.config.js -``` - -3. 安装依赖 +2. 安装依赖 ``` npm install ``` -4. 开发模式运行 +3. 开发模式运行 ``` npm run serve ``` @@ -107,6 +107,7 @@ npm run serve ## 技术栈 -- 后端:Flask +- 后端:Flask, SQLAlchemy, PyMySQL - 前端:Vue 3 -- 通信:Axios \ No newline at end of file +- 数据库:MySQL 8.4.3 (云端) +- 通信:Axios, Socket.IO \ No newline at end of file diff --git a/goldminer/backend/app.py b/goldminer/backend/app.py index d526fdcb..cad7f3d0 100644 --- a/goldminer/backend/app.py +++ b/goldminer/backend/app.py @@ -6,11 +6,28 @@ from flask_socketio import SocketIO, emit, join_room, leave_room import os import uuid from datetime import datetime +from sqlalchemy.exc import OperationalError +import logging + +logging.basicConfig(level=logging.INFO) +logger = logging.getLogger(__name__) app = Flask(__name__, static_folder='../frontend/dist') app.config['SECRET_KEY'] = os.environ.get('SECRET_KEY', 'dev_key_for_goldminer') -app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///goldminer.db' + +# 云端MySQL数据库配置 +DB_USER = os.environ.get('DB_USER', 'goldminer') +DB_PASSWORD = os.environ.get('DB_PASSWORD', 'nBAWq9DDwJ14Fugq') +DB_HOST = os.environ.get('DB_HOST', 'mysql2.sqlpub.com') +DB_PORT = os.environ.get('DB_PORT', '3307') +DB_NAME = os.environ.get('DB_NAME', 'goldminer') + +# 构建MySQL连接字符串,包含端口 +app.config['SQLALCHEMY_DATABASE_URI'] = f'mysql+pymysql://{DB_USER}:{DB_PASSWORD}@{DB_HOST}:{DB_PORT}/{DB_NAME}' app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False +app.config['SQLALCHEMY_ECHO'] = True # 开启SQL查询日志,方便调试 + +logger.info(f"连接到云端数据库: {DB_HOST}:{DB_PORT}/{DB_NAME}") CORS(app, supports_credentials=True, origins=['*']) # Enable CORS with credentials for all origins db = SQLAlchemy(app) @@ -67,9 +84,24 @@ class ChatMessage(db.Model): room = db.relationship('ChatRoom', backref=db.backref('messages', lazy=True)) user = db.relationship('User', backref=db.backref('messages', lazy=True)) -# 创建数据库表 -with app.app_context(): - db.create_all() +# 检查数据库连接并创建表 +def init_db(): + with app.app_context(): + try: + logger.info("正在连接到云端MySQL数据库...") + # 尝试创建表结构(如果不存在) + db.create_all() + logger.info("数据库连接成功,并且所有表都已创建(如果不存在)。") + except OperationalError as e: + logger.error("无法连接到云端MySQL数据库。请检查您的数据库配置和网络连接。") + logger.error(f"错误详情: {e}") + logger.error("请确保:") + logger.error(f"1. 能够访问数据库服务器 {DB_HOST}:{DB_PORT}") + logger.error(f"2. 数据库 '{DB_NAME}' 存在且用户 '{DB_USER}' 有权限访问。") + logger.error(f"3. 提供的密码是正确的。") + # 这里不会阻止应用启动,但会记录错误 + except Exception as e: + logger.error(f"初始化数据库时发生未知错误: {e}") # 注册API @app.route('/api/register', methods=['POST']) @@ -449,4 +481,7 @@ def handle_send_message(data): }, room=str(room_id)) if __name__ == '__main__': - socketio.run(app, debug=True, host='0.0.0.0') \ No newline at end of file + # 在启动应用前初始化数据库 + init_db() + # 使用 eventlet 或 gevent 来获得更好的性能 + socketio.run(app, debug=True, host='0.0.0.0', port=5000) \ No newline at end of file diff --git a/goldminer/backend/goldminer.db b/goldminer/backend/goldminer.db deleted file mode 100644 index bbdc98603f8c727b0d34805b9ee11ba7258701b6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 24576 zcmeI(y>Ht_6aa8iwq;AL!vcZf6dA(7b|kcBd3XGhx|Ff$M2IaXwA{u^i4%F0RLf#2 z(s7DTPKqKOG6Y>ZX6aC%K-PBf-_SMPlXS{hpkt4+(@M5v7wD1%?;uJ?-UlCld@^vd zv~hE_l`uJsx;r$HiSV8vioz$dEC|8{zGeCLs!Z|9_^TcMD)!Y!RWAt2x5a7cFJa=H z&xLbOrQfC>z56|{LID8~009sH0T2KI5CDNURNx+-n4F!T7r(ij(0ZHsO`3Q+ERJb| z`KPt@^~)}~j$L!)ntf%}k^5(m3;A3tkSo=ibJcO>>UvGCZmzC=DCcwCDBAHxwC%>M zJF4v{Ho4~9;*<4F=yw@SSm5z>z%q}fR#|h>^W1PNYqq;3Uw5|TLMtey$5z%|r*gHL z9xEKhQIuV0#c`eLlCyDm32DR75l7Jtj7X35I_Hb~Uyo1DUb-aScm4%U=jyqnm5GyF zhvyn;)uB5~{?vAtuGww@scP}$g-0X7M!2+MkNQdL4wJ8}udh0G^}k^C=IWhl)Yacx z9y?5@>%FUQ@W{PpD^8;BSN-+z0fYXQQ&Q%%w21wv%Z4Ueo84h;k0*!UWW!T2*zMA! z6?KLVZ$$0DW3<~DF?a;;S!s7x5+&l~?97aK|Bx~5oo<-{w)DsuTmzY79ZQ_sG>-S8 zZs0X(-25lM@X-7^`NnF~IPuz1qtzLBzcpKprZ;dmMkUr}wQ_UQkqhZ%q;VGW#mkxO z?8h^r(CP&2Zv17NukAg$n?${RFYV}|^m&Z`u}#6j89 zt5{!DjYVY2DlQY1pGZ-WscY(B3lD){#l*xaY5PTSO1RjIbB}f!U+i{<#=5>`EiGS5 zD)k24a+VRE(=o=>3hS6)9w{{v=TwWv#FAtwT`SoN!Q_(e3BWPj#sNcck=RY1C>qp8& zS2X^+du)6(miGI=e(~VZi|-!3_~FU3gU5e7I5x3XDifk$-86}|nBfD&c{`Ji7~Y+r bGQtYNs;-j-zWndSJ0uR?PbCUM80+fao6;Ue diff --git a/goldminer/backend/instance/goldminer.db b/goldminer/backend/instance/goldminer.db deleted file mode 100644 index 1f81f12e30898ec0b6e6a3a79612ccd762dd100c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 24576 zcmeI)L2uhO6aZk!PLn2E;sHUC%YX_)iYCBfkd#P@-eqp8c4-r5b)2HTOrS_A*5JgM ztu#w_O1l9Ab}D+=dBD!Q?q3YM?XYVL?6})@8onR~wTj^nz{ho0v+&Wzp0?RJvJY^K;wl6#UlXFuaqAAB=i`NO&J)+f%) zFO{FBpS=ClW+8z92!H?xfB*=900@A<8z}IIT$q@f1fYA%zGQEi#W+os=_TLby= zv*YXyoCNu4=G+NQksOdGeuZpS0a_WGtbs_ez} zy;gM3p6t{KRnN%W=-93UuG`+UR@S28Iv+Pz*6Pjs-tFkVw~*<@;@FM#X0&p%Q5;)% z(T_#18QqAQQDZsUI37Y#aAu1ay&Gsz96PE!wRrf&*u>oB%kJaoAGG3JM=nL?!Z6qI zwMJU)$Zg}@tv8oHsy7!fLW{!#?~Vi;;ga=Zsq*ZB@vg0}uSWI8zri{>*U_a$jsDT~ z@^Q%AJ{tX&?RnhJ`gyl^a5_IWU~szRoRB#$Ec&Y3GiL@`$2>5d*anAco3lev@AYJ! zb$8BezSZsM*vQ__h{hv$Uln$*3ZmSdn7eezeSFMV)GoHt09$e76=);GC0J7>i}s^LZ2v15KURi zF=HX)p^;n*?(0NwBZ>V90u^e;xa5WyBofVh&NUUbuI7|5B_-!RL4+l!39%jaG4cf#S|AkQR3pKeHjL@O7~3{cfk^@*q~J0jX&MMYRH8$J zloTorxKRnUG9sYH4${`3zVPwOWAtl;RxK49DhX=@S3^!Ip@-5v8DnQ_cpmwUJiCRL zv%3dts=53yn-5q@nVm|ml}#*=I`owa5{enMv%ykgn6?8A?er3g5`}CBk)0ho|2Sn_ z1-33lJTV#>s!-x{Y-dMO#lr*>nJ_A`uazWvH8cr}BH{PrHKz0w4eaAOHd&00JNY0w4eaAOHd&@Hz`jlxJOg zH>zCh?H!xaczJfx-qk4n{%=3@4+#W700ck)1V8`;KmY_l00ck)1VG>o7AV&LZsk|U z{z3u)5C8!X009sH0T2KI5C8!X009tq4F%qF$DN8>pOmFj-wY_e;UQ{>6`%j7j2G+w zQsq0R^0R$_1Ogxc0w4eaAOHd&00JNY0w4eaAn-p4ES1KcN%u;<{QT=D&%gcQ*^gg6 gd;0y*f}R9bPAFq!$u9bf>ZNn5+y4x}IipPc1sSnNF#rGn diff --git a/goldminer/backend/run_server.py b/goldminer/backend/run_server.py index 3d8087d3..90afc7c4 100644 --- a/goldminer/backend/run_server.py +++ b/goldminer/backend/run_server.py @@ -1,6 +1,9 @@ -from app import socketio, app +from app import socketio, app, init_db, DB_HOST, DB_PORT, DB_NAME if __name__ == '__main__': + # 在启动应用前初始化云端数据库 + print(f"连接到云端数据库: {DB_HOST}:{DB_PORT}/{DB_NAME}") + init_db() print("启动后端服务器...") print("监听所有网络接口 (0.0.0.0:5000)") - socketio.run(app, host='0.0.0.0', port=5000, debug=True) \ No newline at end of file + socketio.run(app, debug=True, host='0.0.0.0', port=5000) \ No newline at end of file diff --git a/goldminer/frontend/node_modules/.cache/babel-loader/cc6ca55790ce06b0d3a38d6c82998638025d37e2b0d25b48b5724ab7c95f99fb.json b/goldminer/frontend/node_modules/.cache/babel-loader/cc6ca55790ce06b0d3a38d6c82998638025d37e2b0d25b48b5724ab7c95f99fb.json new file mode 100644 index 00000000..e670104c --- /dev/null +++ b/goldminer/frontend/node_modules/.cache/babel-loader/cc6ca55790ce06b0d3a38d6c82998638025d37e2b0d25b48b5724ab7c95f99fb.json @@ -0,0 +1 @@ +{"ast":null,"code":"import { createApp } from 'vue';\nimport App from './App.vue';\nimport router from './router';\nimport axios from 'axios';\n\n// 配置axios默认URL,使用当前主机名而不是硬编码的localhost\nconst currentHost = window.location.hostname;\naxios.defaults.baseURL = process.env.NODE_ENV === 'production' ? '' : `http://${currentHost}:5000`;\nconst app = createApp(App);\napp.use(router);\napp.mount('#app');","map":{"version":3,"names":["createApp","App","router","axios","currentHost","window","location","hostname","defaults","baseURL","process","env","NODE_ENV","app","use","mount"],"sources":["D:/学习/网络应用程序开发/pdf/goldminer/frontend/src/main.js"],"sourcesContent":["import { createApp } from 'vue'\r\nimport App from './App.vue'\r\nimport router from './router'\r\nimport axios from 'axios'\r\n\r\n// 配置axios默认URL,使用当前主机名而不是硬编码的localhost\r\nconst currentHost = window.location.hostname\r\naxios.defaults.baseURL = process.env.NODE_ENV === 'production' \r\n ? '' \r\n : `http://${currentHost}:5000`\r\n\r\nconst app = createApp(App)\r\napp.use(router)\r\napp.mount('#app') "],"mappings":"AAAA,SAASA,SAAS,QAAQ,KAAK;AAC/B,OAAOC,GAAG,MAAM,WAAW;AAC3B,OAAOC,MAAM,MAAM,UAAU;AAC7B,OAAOC,KAAK,MAAM,OAAO;;AAEzB;AACA,MAAMC,WAAW,GAAGC,MAAM,CAACC,QAAQ,CAACC,QAAQ;AAC5CJ,KAAK,CAACK,QAAQ,CAACC,OAAO,GAAGC,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,YAAY,GAC1D,EAAE,GACF,UAAUR,WAAW,OAAO;AAEhC,MAAMS,GAAG,GAAGb,SAAS,CAACC,GAAG,CAAC;AAC1BY,GAAG,CAACC,GAAG,CAACZ,MAAM,CAAC;AACfW,GAAG,CAACE,KAAK,CAAC,MAAM,CAAC","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]} \ No newline at end of file diff --git a/goldminer/frontend/node_modules/.cache/eslint/123ee647.json b/goldminer/frontend/node_modules/.cache/eslint/123ee647.json index 5d8fd632..8d052030 100644 --- a/goldminer/frontend/node_modules/.cache/eslint/123ee647.json +++ b/goldminer/frontend/node_modules/.cache/eslint/123ee647.json @@ -1 +1 @@ -[{"D:\\学习\\网络应用程序开发\\pdf\\goldminer\\frontend\\src\\main.js":"1","D:\\学习\\网络应用程序开发\\pdf\\goldminer\\frontend\\src\\App.vue":"2","D:\\学习\\网络应用程序开发\\pdf\\goldminer\\frontend\\src\\router.js":"3","D:\\学习\\网络应用程序开发\\pdf\\goldminer\\frontend\\src\\components\\Home.vue":"4","D:\\学习\\网络应用程序开发\\pdf\\goldminer\\frontend\\src\\components\\Register.vue":"5","D:\\学习\\网络应用程序开发\\pdf\\goldminer\\frontend\\src\\components\\Game.vue":"6","D:\\学习\\网络应用程序开发\\pdf\\goldminer\\frontend\\src\\components\\Login.vue":"7","D:\\学习\\网络应用程序开发\\pdf\\goldminer\\frontend\\src\\components\\UserProfile.vue":"8","D:\\学习\\网络应用程序开发\\pdf\\goldminer\\frontend\\src\\components\\ChatRoom.vue":"9","D:\\学习\\网络应用程序开发\\pdf\\goldminer\\frontend\\src\\components\\Leaderboard.vue":"10","D:\\学习\\网络应用程序开发\\pdf\\goldminer\\frontend\\src\\components\\Header.vue":"11"},{"size":407,"mtime":1750159657634,"results":"12","hashOfConfig":"13"},{"size":1004,"mtime":1750128639386,"results":"14","hashOfConfig":"13"},{"size":1555,"mtime":1750147385472,"results":"15","hashOfConfig":"13"},{"size":5735,"mtime":1750130209089,"results":"16","hashOfConfig":"13"},{"size":4492,"mtime":1750147385471,"results":"17","hashOfConfig":"13"},{"size":26829,"mtime":1750130209088,"results":"18","hashOfConfig":"13"},{"size":3647,"mtime":1750147385470,"results":"19","hashOfConfig":"13"},{"size":11652,"mtime":1750130209090,"results":"20","hashOfConfig":"13"},{"size":16278,"mtime":1750130209087,"results":"21","hashOfConfig":"13"},{"size":13225,"mtime":1750128639387,"results":"22","hashOfConfig":"13"},{"size":4152,"mtime":1750147491182,"results":"23","hashOfConfig":"13"},{"filePath":"24","messages":"25","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},"i331ru",{"filePath":"26","messages":"27","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"28","messages":"29","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"30","messages":"31","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"32","messages":"33","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"34","messages":"35","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"36","messages":"37","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"38","messages":"39","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"40","messages":"41","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"42","messages":"43","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"44","messages":"45","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},"D:\\学习\\网络应用程序开发\\pdf\\goldminer\\frontend\\src\\main.js",[],"D:\\学习\\网络应用程序开发\\pdf\\goldminer\\frontend\\src\\App.vue",[],"D:\\学习\\网络应用程序开发\\pdf\\goldminer\\frontend\\src\\router.js",[],"D:\\学习\\网络应用程序开发\\pdf\\goldminer\\frontend\\src\\components\\Home.vue",[],"D:\\学习\\网络应用程序开发\\pdf\\goldminer\\frontend\\src\\components\\Register.vue",[],"D:\\学习\\网络应用程序开发\\pdf\\goldminer\\frontend\\src\\components\\Game.vue",[],"D:\\学习\\网络应用程序开发\\pdf\\goldminer\\frontend\\src\\components\\Login.vue",[],"D:\\学习\\网络应用程序开发\\pdf\\goldminer\\frontend\\src\\components\\UserProfile.vue",[],"D:\\学习\\网络应用程序开发\\pdf\\goldminer\\frontend\\src\\components\\ChatRoom.vue",[],"D:\\学习\\网络应用程序开发\\pdf\\goldminer\\frontend\\src\\components\\Leaderboard.vue",[],"D:\\学习\\网络应用程序开发\\pdf\\goldminer\\frontend\\src\\components\\Header.vue",[]] \ No newline at end of file +[{"D:\\学习\\网络应用程序开发\\pdf\\goldminer\\frontend\\src\\main.js":"1","D:\\学习\\网络应用程序开发\\pdf\\goldminer\\frontend\\src\\App.vue":"2","D:\\学习\\网络应用程序开发\\pdf\\goldminer\\frontend\\src\\router.js":"3","D:\\学习\\网络应用程序开发\\pdf\\goldminer\\frontend\\src\\components\\Home.vue":"4","D:\\学习\\网络应用程序开发\\pdf\\goldminer\\frontend\\src\\components\\Register.vue":"5","D:\\学习\\网络应用程序开发\\pdf\\goldminer\\frontend\\src\\components\\Game.vue":"6","D:\\学习\\网络应用程序开发\\pdf\\goldminer\\frontend\\src\\components\\Login.vue":"7","D:\\学习\\网络应用程序开发\\pdf\\goldminer\\frontend\\src\\components\\UserProfile.vue":"8","D:\\学习\\网络应用程序开发\\pdf\\goldminer\\frontend\\src\\components\\ChatRoom.vue":"9","D:\\学习\\网络应用程序开发\\pdf\\goldminer\\frontend\\src\\components\\Leaderboard.vue":"10","D:\\学习\\网络应用程序开发\\pdf\\goldminer\\frontend\\src\\components\\Header.vue":"11"},{"size":420,"mtime":1750209720347,"results":"12","hashOfConfig":"13"},{"size":1004,"mtime":1750128639386,"results":"14","hashOfConfig":"13"},{"size":1555,"mtime":1750209720347,"results":"15","hashOfConfig":"13"},{"size":5735,"mtime":1750209720346,"results":"16","hashOfConfig":"13"},{"size":4492,"mtime":1750147385471,"results":"17","hashOfConfig":"13"},{"size":26829,"mtime":1750209720345,"results":"18","hashOfConfig":"13"},{"size":3647,"mtime":1750147385470,"results":"19","hashOfConfig":"13"},{"size":11652,"mtime":1750209720347,"results":"20","hashOfConfig":"13"},{"size":16278,"mtime":1750209720344,"results":"21","hashOfConfig":"13"},{"size":13225,"mtime":1750128639387,"results":"22","hashOfConfig":"13"},{"size":4152,"mtime":1750209720345,"results":"23","hashOfConfig":"13"},{"filePath":"24","messages":"25","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},"i331ru",{"filePath":"26","messages":"27","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"28","messages":"29","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"30","messages":"31","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"32","messages":"33","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"34","messages":"35","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"36","messages":"37","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"38","messages":"39","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"40","messages":"41","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"42","messages":"43","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"44","messages":"45","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},"D:\\学习\\网络应用程序开发\\pdf\\goldminer\\frontend\\src\\main.js",[],"D:\\学习\\网络应用程序开发\\pdf\\goldminer\\frontend\\src\\App.vue",[],"D:\\学习\\网络应用程序开发\\pdf\\goldminer\\frontend\\src\\router.js",[],"D:\\学习\\网络应用程序开发\\pdf\\goldminer\\frontend\\src\\components\\Home.vue",[],"D:\\学习\\网络应用程序开发\\pdf\\goldminer\\frontend\\src\\components\\Register.vue",[],"D:\\学习\\网络应用程序开发\\pdf\\goldminer\\frontend\\src\\components\\Game.vue",[],"D:\\学习\\网络应用程序开发\\pdf\\goldminer\\frontend\\src\\components\\Login.vue",[],"D:\\学习\\网络应用程序开发\\pdf\\goldminer\\frontend\\src\\components\\UserProfile.vue",[],"D:\\学习\\网络应用程序开发\\pdf\\goldminer\\frontend\\src\\components\\ChatRoom.vue",[],"D:\\学习\\网络应用程序开发\\pdf\\goldminer\\frontend\\src\\components\\Leaderboard.vue",[],"D:\\学习\\网络应用程序开发\\pdf\\goldminer\\frontend\\src\\components\\Header.vue",[]] \ No newline at end of file diff --git a/goldminer/start.bat b/goldminer/start.bat index a5f27312..8e4c6a51 100644 --- a/goldminer/start.bat +++ b/goldminer/start.bat @@ -64,8 +64,9 @@ REM Run the backend server with host=0.0.0.0 echo =================================== echo Starting Backend Server... echo Backend will listen on all network interfaces (0.0.0.0:5000) +echo Connecting to cloud database: mysql2.sqlpub.com:3307 echo =================================== -python -c "from app import socketio, app; socketio.run(app, host='0.0.0.0', port=5000, debug=True)" +python app.py pause if "%1"=="" goto menu exit /b