前言

最近有个同事问我Yapi的idea插件上传接口失败的原因,然后我自己下载了Easy Yapi插件进行测试,发现插件设置面板中无Yapi的配置,也就无法复现失败的原因,心血来潮那就本地安装一个Yapi呗,所以有了这边文章的来源,我会一步步的将我安装步骤和出现问题后解决方法都附上,各位如果安装的时候,也出现问题,请对号入座。

正文

打开Yapi的官方github地址 官方Yapi github地址

环境要求是 nodejs和mongodb而且有版本要求,这里先透露点这个版本号有很大的误区,大坑。

安装nodejs

这里先介绍2个node的版本管理工具,npm 和n

npm用过nodejs的知道,用于管理nodejs的版本,一般我们无需单独安装,他会随着我们安装nodejs的时候一起安装,这里我们通过另外一个版本管理工具n,因为n在版本切换和下载太好用,太方便

n

n是node的一个模块,安装起来也是很方便的,通过下面命令执行

$ sudo npm install -g n

安装完以后,我们查看版本号通过执行下面命令

n --version

我本地的版本号是 9.0.0 如下图所示

 这里只介绍几个常用的命令

安装或者切换nodejs版本

n  版本号

列出当前已经安装的 nodejs

n ls

 为了安装yapi,我摸索下载这么多版本

安装nodejs

通过上面的介绍,这里安装nodejs简直太方便了,根据官网nodejs要求的版本号是7.6+,那么我们这里就安装 7.6,通过执行下面命令

n 7.6.0

安装成功后,我们在安装mongodb

mongodb

下载压缩包

我是通过官方下载mongodb 压缩包,本地减压后执行的命令安装

mongodb官网社区版下载

我已经下载好了,大家如何不想去官网下载,我这里有安装包,点击下面链接下载也是比较快的mongodb下载地址

创建环境不要的文件夹

下载后进行解压,双击或者解压命令都可以,我们创建一个文件夹,将解压后的文件夹拖追过去,我是在/usr/local/下新建一个mongdb文件夹,将其放到该文件夹下。这里有一个问题,/usr/local文件默认没有读写权限的,所以我们接下来执行下面命令对其赋权

sudo chown  自己电脑名称 /usr/local/mongodb

执行后,输入密码回车就可以了。

创建data、log文件夹,随便找个有权限的地址创建即可,我是在mongodb当前文件夹下创建的。如下图所示

同样创建log 文件,如下图所示

配置环境变量

打开base_profile文件,执行步骤如下图所示

执行完1、2步骤后,在base_profile文件里添加

export PATH=/usr/local/mongodb/bin:${PATH}

/usr/local/mongodb 路径换成你安装mongodb自己的路径,保存后文件后在执行步骤4即可。

到了验证环境变量是否生效的时候了,通过执行下面命令

mongod -v

如果执行后报错,那么我们将错误信息,复制出来,在信息里会找到如下段错误信息

mongodb-27017.sock","error":"Permission denied"}}

没有权限,那么我们执行  sudo  mongod -v ,一般就没问题了

启动mongdb

依次执行如下命令,我们为了避免权限不足的情况,在执行的时候加上了sudo

如果执行报错,一般是 data权限不足,将该文件夹重新赋读写权限即可。

启动后默认是无库,无用户名,无密码,我们验证是否启动成功,用客户端工具链接验证,我这里借住的是datagrip工具,如下图所示

点击下方的测试链接,如果显示成功,那么在点击OK。

新开一个connsole,执行  use yapi命令,创建yapi需要的库。

安装Yapi

到这里才算是正真安装我们需要的软件了。

下载包

依次执行下面命令

npm install -g yapi-cli --registry https://registry.npm.taobao.org

yapi server

执行完会看到控制台打印出下面这行 http://0.0.0.0:9090/

安装

安装Yapi 从官网看到,有2种方式,如下图

可视化部署和命令行部署,这里强烈建议采用命令行部署,原因都是泪。

采用可视化部署的时候,大家看下面几张报错情况

开始我node的版本号是最新的,然后抱上面错,原因是nodejs的版本号太高了,那么将其切换到环境要求的最低版本 7.6.0,执行后

没有结果了。

从控制台看到说是 nodejs的版本号太低了,我j将其升级到14.2.0 的时候,又开始提升npm 版本太低,

当我讲npm升级到最新的时候,又开始提示node 版本太低,nodejs和npm的版本号直接的对应的对应关系太难找了,和官方要求的7.6.0很有出入,最后将node版本定格在12.18.2 ,npm的版本号 6.14.5的时候,终于不再包这个错,而且这个时候yapi的安装版本号要选择 1.8.8。

你们以为这样就可以了吗?太小瞧困难了,不再抱版本号的问题,但是链接mongodb的时候,又报错了,如下图所示:

Error: (node:90198) DeprecationWarning: current Server Discovery and Monitoring engine is deprecated, and will be removed in a future version. To use the new Server Discover and Monitoring engine, pass option { useUnifiedTopology: true } to the MongoClient constructor.

大概意思是提示让 useUnifiedTopology: true参数加到mongo客户端调用的构造方法中。这不就简单么,我们找到链接的代码,将其加入到构造方法中即可,又开始找代码中,终于经过 install.js、yapi.js、util/db.js关联文件找到链接mongodb的构造方法定义在db.js中,如图所示

修改配置、重启服务、开始部署,结果还是报上诉错,查看db.js的时候,发现刚刚加的配置没有了,说明这个文件是实时生成,这些就犯难了,难道要找db.js这个文件是如何生成的吗?太困难了。正当犯愁的时候,看到部署yapi还有另外一种方法。那就试试另外一种方法吧。

根据上图中的步骤,我们只要执行红框中的步骤即可,其他步骤已经在执行可视化界面的时候生成了,按照上述步骤执行又出现错误,根据错误信息,能看出来是初始化管理员账号失败,那么将mongodb user表删除后,再执行 run install --server 显示下面一段内容

幸福来的太突然了,这就成功了,有点不相信,那就试着打开链接看看,天亮了,出现了登陆界面,输入提示的用户名和密码,出现下面一幕

尽然真的可以了,幸福来的太突然了。经历了无数次失败后,采用另外一种方式部署后,竟然成功了。

总结

当前安装版本如下

nodejs:v12.18.2

n:

n --version
v9.0.0

npm :6.14.5

Yapi安装版本号:1.8.8

mongo版本号:

mongod -version
db version v6.0.1
Build Info: {
    "version": "6.0.1",
    "gitVersion": "32f0f9c88dc44a2c8073a5bd47cf779d4bfdee6b",
    "modules": [],
    "allocator": "system",
    "environment": {
        "distarch": "x86_64",
        "target_arch": "x86_64"
    }
}

启动命令

mongo

sudo mongod --dbpath data

yapi

cd /my-yapi/vendor/server

node app.js

留言

大家在部署Yapi遇到问题,可以在下面留言,毕竟我是踩过无数次坑的人,可能比官网更能解决大家遇到的问题。

Mac Yapi 内网安装保姆级步骤相关推荐

  1. Frp内网穿透保姆级教程 windows内网穿透

    Frp内网穿透保姆级教程 windows内网穿透 准备工作 一台具有公网ip的云服务器(我的是ubuntu) frp程序 流程 将frps放到具有公网ip的服务器上 将frpc放到需要内网穿透机器上, ...

  2. 内网穿透保姆级教程——内网穿透建立个人网站、远程控制

    文章目录 1 什么是内网穿透? 2 实现内网穿透有什么用? 3 内网穿透具体实现步骤 3.0 需要工具:花生壳客户端.IIS功能(电脑自带) 3.1 开启Internet Information Se ...

  3. 星空内网穿透保姆级教程

    星空内网穿透教程 免费版的限制如下图: 在这里插入图片描述 访问网址 :https://frp.starryfrp.com/ 开始使用 注册 注册很简单,填入对应的信息注册即可. 登录 注册后输入用户 ...

  4. Mac(Big Sur系统)安装tunnelblick(vpn)步骤

    Mac(Big Sur系统)安装tunnelblick(vpn)步骤 以下流程[支持 macOS 11(Big Sur)对 Apple Silicon(ARM)Mac 的支持] 下载安装 官网下载,链 ...

  5. Java实现Http代理服务器通过http代理进行内网安装yum软件

    Java实现Http代理服务器&通过http代理进行内网安装yum软件 1.Http代理服务器简介 2.Http代理服务器Java实现 2.1 Java源码 2.2 代码分析说明 3.通过ht ...

  6. win7 x86系统 内网安装 IE11

    win7 x86 系统 内网安装 IE11 1.需求分析 2.前提条件 3.操作步骤 1.需求分析 不同的 web 应用,浏览器的选择是不同的,因为我们的 web 系统开发年限比较久远,是基于 IE8 ...

  7. pyecharts官网使用说明书---保姆级手把手教你画图版

    pyecharts官网使用说明书---保姆级手把手教你画图版 1.画图脚本结构 2.参数的类型 3.参数与结构相结合 3.1图表函数 3.2add数据 3.3全局配置参数 3.4系列配置参数 4.总结 ...

  8. ubuntu内网安装软件

    在生产环境中很少有连接外网的服务器,这里以ansible内网安装为例来介绍. 1.安装ansible(有外网) 1.ansible的安装包存在于ansible的PPA中,如果要下载PPA(个人软件包存 ...

  9. linux用rpm安装nginx,Linux内网安装nginx(rpm包安装方式)

    然后,将下载好的rpm包放入服务器内,地址随意,进入对应目录,执行Linux命令: ( rpm -ivh rpm包的名字) rpm -ivh nginx-1.18.0-1.el7.ngx.x86_64 ...

  10. VMware虚拟机最新详细安装保姆级教程(2023年新版教程)

    VMware最新详细安装保姆级教程(2023年新版教程) 大家好,我是洲洲,欢迎关注,一个爱听周杰伦的程序员.关注公众号[程序员洲洲]即可获得10G学习资料.面试笔记.大厂独家学习体系路线等-还可以加 ...

最新文章

  1. css 倒三角_倒三角结构:如何管理大型CSS项目
  2. 权威预测:2018年这十大数字化转型趋势要火!
  3. linux设置开机服务自动启动/关闭自动启动命令
  4. 测试MindMotion MM32F3277 MicroPython -2021-11-20新增PWM版本
  5. echarts 图标高度自适应_echarts图表盒子大小变化后,图表无法自适应
  6. Flink SQL解析复杂Join(转载+自己整理和补充)
  7. leetcode 796. 旋转字符串(Rotate String)
  8. Gerchberg–Saxton算法
  9. qq语音按住ctrl就静音怎么解决_干货!PS超实用去水印方法汇总(图文教程),可解决99%水印烦恼...
  10. Java/JSP中使用JDBC连接SQL Server 2000/2005
  11. location匹配
  12. 【qq语音获取好友ip】wireshark
  13. fio: engine libaio not loadable
  14. 按头安利 好看又实用的手绘图标素材看这里
  15. exls表格搜索快捷键_excel表格查找快捷键|excel表格的常用功能快捷键介绍
  16. qq病毒java代码_刚刚遭遇QQ病毒
  17. python葡萄酒数据集_葡萄酒质量数据集分析
  18. android 组件暴露风险,Activity组件暴露导致本地拒绝服务
  19. 【R言R语】算法工程师入职一年半的总结与感悟
  20. springboot 解决java.lang.ArrayStoreException

热门文章

  1. php 应用截图,PHP实现网页截图?
  2. 科技爱好者周刊(第 150 期):当音乐还是稀缺的时候
  3. 内存管理中的虚拟地址到物理地址翻译
  4. python中获取中位数的两种方法
  5. 小白看看!本人自学Python编程经验分享。
  6. 肠道微生物组如何影响运动能力,所谓的“精英肠道微生物组”真的存在吗?
  7. Android手机简易计时器(Chronometer实现)
  8. win11更改电脑中文用户名
  9. 车架号OCR识别算法
  10. word未保存文件关闭之后,如何恢复