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();