node.js选版本下载:Previous Releases | Node.js (nodejs.org)
mongodb选版本下载:Download MongoDB Community Server | MongoDB
安装完成后直接点击bin目录中的mongod.exe,启动即可运行服务,安装教程见:在Windows上安装_MonogDB 中文网 (mongodb.net.cn)
安装PM2:
1. 使用运行窗口以管理员身份运行PowerShell
第1步: 同时按下Windows + R键以弹出“运行”对话框。
第2步: 在框中键入PowerShell,然后单击OK(确定)按钮。 普通的Windows PowerShell将以当前用户身份启动。
第3步: 键入命令start-process PowerShell -verb runas,然后按“enter”键。
第4步: 以上命令将以管理员身份提升Windows PowerShell的权限。
2.管理员cmd窗口运行: npm install pm2 -g
安装windows自启动包:npm install pm2-windows-startup -g
执行命令:pm2-startup install
查看是否安装成功:pm2 -v
scp数据库备份文件到本地,windows用robo3T直接import界面功能将bson文件导入本地数据库
启动node服务遇到:MongoError: Unsupported OP_QUERY command: listIndexes. The client driver may require an upgrade. For more details see https://dochub.mongodb.org/core/legacy-opcode-removal
查看https://dochub.mongodb.org/core/legacy-opcode-removal发现:OP_QUERY命令已经废弃,那就是说mongoose版本过低,和新安装的mongodb版本不兼容导致,要将mongo版本降到6.0一下。
截屏2023-08-15 10.05.25.png重新安装低版本mongo后重启node服务报错:MongooseServerSelectionError: connect ECONNREFUSED ::1:27017
查到资料:
上面出现的 ::1 是 ipv6 的 localhost 地址,但是 mongoDB 是在 127.0.0.0:27017上侦听的,(ipv4的 localhost(127.0.0.1)),所以连接 ::1:27017 会失败。
所以要想连接 mongodb 数据库成功,必须将服务器中 ipv6 的 localhost 修改为 ipv4 的 localhost。但是要想修改成功,这里会有一个 ipv6 与 ipv4 在我们服务器的优先级问题。
所以,下面推荐一篇修改 ipv6 与 ipv4 的优先级文章,按照这篇文章修改即可解决连接本地mongo数据库失败:connect ECONNREFUSED ::1:27017 的问题。
node.js 18默认使用ipv6,我没有选择采用使用高版本node并解决::1问题的解决方式,而是降低node.js版本到16以下(包含16)来解决问题。
至此,服务成功重启。
总结一下,windows电脑开发linux服务端还是不太方面,一是windows自带的powershell权限太低,好多linux下加个sudo就能运行的命令,windows都需要在管理员powershell中才能完成,但是tortoiseSvn确实比mac上的svn工具更强大好用,robo3t也比mac版多了很多图形化的傻瓜操作,很方便,只是用习惯了,底层操作mongo的linux命令就荒废了。
另外一点不爽的是,windows和国内公司的android衍生版本太像了,系统不简洁干净,太多干扰因素。比如win 10左下角的天气,打开就是个巨大的新闻客户端。下载个软件太多的关联下载,比如下载mongo竟然默认关联mongo compass下载。mac 用命令行很方便,就没有这么多事。
其他:
解决WIN10使用苹果鼠标滚轮不能使用、苹果触摸板不能滑动问题:个人百度云盘下载驱动
其他软件安装xshell、xftp、tortoiseSvn、vscode、robo3t、postman
网友评论