一直以来都在关注nodejs,直到最近空闲下来,才尝试写写nodejs小demo。文章如有错误欢迎批评指正!来自一位不知名的前端。
前言(本项目仅供学习使用)
1、本demo刚开始采用koa2开发,后面由于koa2的异步响应不好处理(还在研究中)改用express;后续会尝试使用koa2改造。
2、http请求(csrf伪造)主要参考netmusic-node;其他部分思路参考NeteaseCloudMusicApi。
3、本项目预览地址https://music.jeeas.cn/
已实现网易云音乐基础功能和websocket数据推送
以get方式请求
1、搜索歌曲名 params[s=歌曲名,type,offset,limit]
getApi/search?s=歌曲名
2、单曲播放地址 params[id=歌曲id,br]
getApi/music/url?id=25643093
3、歌词 params[id]
getApi/lyric?id=25643093
4、单曲详情 params[id]
getApi/music/detail?id=25643093
5、专辑详情 params[id]
getApi/album/detail?id=2263164
6、歌单类型列表 params[]
getApi/playlist/catlist
7、歌单类型列表-热门类型 params[]
getApi/playlist/hot
8、推荐新音乐 params[]
getApi/personalized/newsong
9、搜索hot params[]
getApi/search/hot
10、推荐歌单 params[]
getApi/personalized
package.json主要包说明
"dependencies": {
"apicache": "^1.5.2",
"big-integer": "^1.6.47",
"crypto": "^1.0.1",
"ejs": "^2.7.1",
"express": "^4.17.1",
"express-rate-limit": "^3.5.3",
"fs-extra": "^8.1.0",
"redis": "^2.8.0",
"request": "^2.88.0",
"socket.io": "~2.1.1"
}
apicache:请求cache缓存,防止api调用过于频繁ip被禁掉
ejs:数据模板