尼采般地抒情

尼采般地抒情

尼采般地抒情

音乐盒

站点信息

文章总数目: 316
已运行时间: 1570

前言:使用yapi系统来管理个人项目接口,目标是在个人电脑上而非服务器上搭建一个yapi系统,开机自启动或者手动启动。一开始是使用官网推荐的yapi-cli来搭建,但是坑比较多,node限制在12x,这个显然影响本机环境。然后采用直接运行YApi的源码,利用pm2来运行node服务,最后可以达到预期效果,但是pm2设置了开机自启动影响电脑性能。最后采用docker容器部署,需要的时候手动启动即可,而且部署起来感觉更加简洁,故本文将docker作为推荐部署方式。

一、pm2部署

使用pm2来运行YApi node程序。

下载Yapi源码以及配置Yapi

  • 先将node版本切换到12.18.2,因为过高版本的node不能使用(个人试过高于14.17.就不能使用)。

关于如何切换node版本,参考之前文章nvm的使用

cnpm install -g yapi-cli
  • 在文件夹中执行如下命令:
yapi server
  • 访问localhost:9090,将页面配置填上即可:

安装成功会有如下信息:

初始化管理员账号成功,账号名:"admin@admin.com",密码:"ymfe.org"
部署成功,请切换到部署目录,输入: "node vendors/server/app.js" 指令启动服务器, 然后在浏览器打开 http://127.0.0.1:3000 访问

创建本地MongoDB数据库

db.createUser({user: 'root',pwd: 'root',roles:[{role: 'root',db: 'admin'}]})
> use admin
switched to db admin
> db.createUser({user: 'root',pwd: 'root',roles:[{role: 'root',db: 'admin'}]})
Successfully added user: {
        "user" : "root",
        "roles" : [
                {
                        "role" : "root",
                        "db" : "admin"
                }
        ]
}
> show users
{
        "_id" : "admin.root",
        "userId" : UUID("f47c99bb-2df6-410c-bde1-2f424d0258d3"),
        "user" : "root",
        "db" : "admin",
        "roles" : [
                {
                        "role" : "root",
                        "db" : "admin"
                }
        ],
        "mechanisms" : [
                "SCRAM-SHA-1",
                "SCRAM-SHA-256"
        ]
}

找到 MongoDB 安装目录,打开 mongod.cfg文件修改

重启mongodb

C:\Users\wztli>mongo
MongoDB shell version v5.0.5
connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("6ff518c1-21c7-4d6f-98ce-23b12c925321") }
MongoDB server version: 5.0.5
================
Warning: the "mongo" shell has been superseded by "mongosh",
which delivers improved usability and compatibility.The "mongo" shell has been deprecated and will be removed in
an upcoming release.
For installation instructions, see
https://docs.mongodb.com/mongodb-shell/install/
================
> use admin
switched to db admin
> db.auth('root','root')
1

YApi node程序运行成功

pm2后台管理Yapi进程

pm2就相当于之前服务器使用的screen,新开一个进程,就算关掉cmd也能进行操作

这样就是在本地电脑上,可以把项目关掉,但是该项目还处于运行当中,当然了,重启电脑还是要重新执行上面的pm2命令的,也可以进行pm2开机自启动一些项目,具体参考上面的教程链接。

pm2设置开机自启动服务

目的是电脑一开机就会自动重启该服务:

cnpm i -g pm2-windows-service

相关报错

Error: (node:2304) Warning: Accessing non-existent property……

Error:  (node:2304) Warning: Accessing non-existent property 'count' of module exports inside circular dependency
(Use `node --trace-warnings ...` to show where the warning was created)

events.js:292 throw er; // Unhandled 'error' event

下载gyp试试,需要电脑上的环境参考:https://github.com/nodejs/node-gyp#on-windows

cnpm install -g node-gyp

Error: Can‘t find Python executable “python“, you can set the PYTHON env variable

成功安装之后,cnpm i 会有一个报错:

解决参考:

下载:

npm install --global --production windows-build-tools

MongoNetworkError: Authentication failed., mongodb Authentication failed

添加admin值即可

二、docker部署

docker部署主要参考:https://github.com/fjc0k/docker-YApi#readme,不过有几个需要注意的点:

  • redeme提到的Docker 和 Docker Compose版本不能太久
  • MongoDB如果是在线数据库,配置方式采用集群配置字段更加便捷:
version: '3'

services:
yapi-web:
image: jayfong/yapi:latest
container_name: yapi-web
ports:
- 40001:3000
environment:
- YAPI_ADMIN_ACCOUNT=xxxxxx
- YAPI_ADMIN_PASSWORD=xxxxxx
- YAPI_CLOSE_REGISTER=true
- YAPI_DB_CONNECT_STRING=mongodb+srv://name:password@url/databasename?retryWrites=true&w=majority
- YAPI_MAIL_ENABLE=false
- YAPI_LDAP_LOGIN_ENABLE=false
- YAPI_PLUGINS=[]
depends_on:
···

三、相关链接

YApi参考:

本地MongoDB创建参考:

pm2相关参考:

评论区