From 8200e57938af1003af162fac03ade45a89b03169 Mon Sep 17 00:00:00 2001 From: ZhuangYumin Date: Fri, 15 Dec 2023 13:08:33 +0000 Subject: [PATCH] =?UTF-8?q?=E6=9C=8D=E5=8A=A1=E7=AB=AF=E5=AE=9A=E7=A8=BF?= =?UTF-8?q?=EF=BC=8C=E6=92=B0=E5=86=99=E5=AE=89=E8=A3=85=E6=89=8B=E5=86=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CMakeLists.txt | 2 +- docs/user/系统安装手册.md | 30 ++++++++++++++++++++++++++++++ frontend/Web/index.js | 2 +- 3 files changed, 32 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index dbc1a93..de1347c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,6 +1,6 @@ cmake_minimum_required(VERSION 3.15.2) project(BookStore) -set(CMAKE_CXX_FLAGS "-Ofast") +set(CMAKE_CXX_FLAGS "-Ofast -std=c++17") file(GLOB_RECURSE main_src backend/src/*.cpp) include_directories(${PROJECT_SOURCE_DIR}/backend/include) include_directories(${PROJECT_SOURCE_DIR}/external) diff --git a/docs/user/系统安装手册.md b/docs/user/系统安装手册.md index e69de29..5d2f13f 100644 --- a/docs/user/系统安装手册.md +++ b/docs/user/系统安装手册.md @@ -0,0 +1,30 @@ +# 部署 +## 依赖 +- `g++`、`CMake`:注意,要支持C++17 +- `Node.js`、`npm` + +## 下载与构建 +1. 下载或克隆本仓库,并进入仓库根目录 +2. 运行以下指令: +``` +mkdir build +cd build +cmake -B . -S .. +cmake --build . +cd ../frontend/Web +npm install +``` + +## 安装 +直接把**整个项目文件夹**移动到你想移动到的位置 + +# 运维 +## 打开与关闭 +启动方式:用`node`执行`frontend/Web/index.js`,务必在后面带上数据库存放位置,它应当是一个目录,并且必须以`/`结尾。执行该命令后,会一直等到服务器停止运行才退出。 + +关闭方式:打开WebUI,以超级管理员身份登录,并在浏览器控制台中输入`await ShutDownWholeSystem();`,没有任何输出则表明关闭成功。 + +## 注意事项与TIP +- 后端带有缓存,务必避免强制中止 +- 执行启动命令后,会一直等到服务器停止运行才退出,如果使用`systemd`管理,类型是`simple`而**不是**`forking`。 +- 服务器启动后,会一直向标注输出打印Log,可以把它重定向并收集起来。 \ No newline at end of file diff --git a/frontend/Web/index.js b/frontend/Web/index.js index f147c4b..404d1e6 100644 --- a/frontend/Web/index.js +++ b/frontend/Web/index.js @@ -9,7 +9,7 @@ const io = new Server(server); const message_map=new Map(); const { spawn } = require('child_process'); -const backend=spawn('/workspaces/BH-Bookstore-2023/build/code',['-s','-c','/tmp/conf/']); +const backend=spawn(join(__dirname, '../../build/code'),['-s','-c',process.argv.slice(2)[0]]); const AsyncLock = require('async-lock'); const lock = new AsyncLock();