自建MetingJs后端API
前言
国庆假期刚结束,终于有时间更新一下了。最近突然发现MetingJs音乐播放器插件不能获取网易云的音乐,F12一打开就满屏红字报错。抱着试一试的心态,我在本地用 ping
测了一下获取音乐信息的 API,果不其然,请求超时了。
看来是没办法了,只能去 GitHub 上翻一下 MetingJs 的源码。仔细检查后发现,这个音乐播放器插件其实是前端 Node 组件和后端 API 组成的。既然有 API,那就意味着可以自己搭建后端服务。问题是,原作者的后端 API 是用 PHP 写的,对我这个没学过 PHP 的人来说有点麻烦啊。
不过幸好,有大佬用 JavaScript 重写了一版后端,项目地址:https://github.com/xizeyoupan/Meting-API。这下不用折腾 PHP,终于可以放心大胆地用 JS 来搞定。
折腾
启动
这个项目需要 Node.js 版本 18 以上,代码下载好后,有两种方式来启动项目:
1)第一种方式:把代码下载到服务器,然后直接用 npm run start:node
启动。默认的端口号在 ../src/config.js
文件里可以自行修改。
2)第二种方式:使用 Deno(Deno 是 JavaScript 和 TypeScript 的运行时环境,感兴趣的朋友可以自行了解)。在 Linux 上安装 Deno 很简单,运行以下命令即可:
1 | curl -fsSL https://deno.land/x/install/install.sh | sh |
安装好之后,可以查看 Deno 版本:
1 | deno -v |
查看使用方法
1 | deno --help |
Deno安装位置:/root/.deno
安装完 Deno 后,咱们需要把原始项目打包,使用以下命令打包:
1 | npm run build:all |
打包完成后,会生成一个 deno.js 文件,路径是 …/src/dist/deno.js,接着运行以下命令启动:
1 | npm run start:deno |
个人比较推荐第二种方式,易于管理,另外这些命令可以在 package.json 里自行调整。
代理
在用 Nginx 代理这个服务的时候,需要设置 X-Forwarded-Host 请求头。注意在 X-Forwarded-Host 后面加上 location 的转发路由,如下示例:
1 | server { |
如果你用的是 HTTPS 协议,可以把 X-Forwarded-Host 里的 $server_port 省略掉:
1 | server { |
测试
当项目启动成功、Nginx 代理配置好后,访问你配置的域名或者链接地址,应该能看到如下页面:
访问测试地址,如出现以下页面并且歌曲加载正常,就说明部署成功了。
配置
最后,在你需要展示音乐播放器的地方,插入以下代码:
1 | <script> |
注意:原始项目作者同时更换了Meting.min.js插件,本次教程仅仅替换了Meting.min.js调用的后端API,正常来说无需替换插件,请根据具体情况调整。
结语
总的来说,整个过程不算复杂,但一些细节还是要留心处理。好了,折腾到这儿,咱们下次见!