塞壬唱片Nodejs-API - Shiina's Blog

塞壬唱片Nodejs-API

2023 年 3 月 16 日 - 17:59:15 发布
1.3K 字 5分钟
本作品采用 CC BY-NC-SA 4.0 进行许可。
本文距离首次发布已经过去了 421 天,请注意文章的时效性!

塞壬唱片Nodejs-API

这是一个模仿 NeteaseCloudMusicApi 制作的项目

可以用于当作自己 web 作业的后台,也可以用于构建自己的播放器

项目地址:https://github.com/QingXia-Ela/MonsterSirenApi

未来会把这个集成到新播放器的后台,敬请期待

下面简单说一下项目搭建思路

项目起步与搭建思路

目录结构

项目的目录采用了 monorepo 的方式去弄,虽然本质上是为了方便多个包在同一个 repo 进行维护,不过本项目就还没有完全按照这种格式去处理目录,比如 utils 仍然是在 packages 目录下的,还有 declare 也是

后面如果有机会项目会进行重构处理,至少不会让目录那么难看

服务器实例

服务器实例使用的是经典的 express,上手比较容易

接口模块化

架构参考了网易云 api 的模式,具体来说是采用了设计模式中的模板方法模式,在服务器中定义一个算法的骨架,然后给子模块接口传入必要参数,并让子模块去自行设计算法处理参数,然后通过服务器给的请求方法发起请求

不过当初模仿这种架构的时候设计的不是很好,导致后期想要扩展时非常痛苦,不得不在子模块内写了一堆很蠢的代码进行参数解构去维持运行

以后一定要找机会重构

ts 编译后的 js

ts 编译后的 js 在 ESM 模式下是不会携带 js 扩展名的,这就导致编译的 js 是无法直接启动的,因为会因为路径和扩展名问题报错找不到模块

目前项目内所有的引入都是采用相对目录模式引入,其次是写了一个处理脚本,在编译后遍历所有的 js 文件,对 import 与 export 部分进行处理与添加 js 扩展名

原脚本:https://github.com/liulinboyi/HTMLParser/blob/main/script/addSuffixJs.js

自己根据需求改造了一下:https://github.com/QingXia-Ela/MonsterSirenApi/blob/main/addSuffixJs.js

不过仍然有点小 bug,以后看看有没有机会继续改吧

npm 发包

这一步还是很简单的,参考的这篇文章就没问题:https://blog.csdn.net/qq_36380426/article/details/128310001

npm 登录自己的账户:

npm login

登录完后用 npm publish 就可以登录成功了

在最后的白名单与黑名单中,个人更推荐在 package.json 去写白名单目录和文件,这样子管理更方便

个人信息
avatar
Shiinafan
文章
38
标签
52
归档
4
导航