From ff8d57a34ac5c039e5214034b72a5607a78aafb9 Mon Sep 17 00:00:00 2001 From: binaryify Date: Mon, 18 May 2020 15:09:39 +0800 Subject: [PATCH] =?UTF-8?q?=E6=94=AF=E6=8C=81nodejs=E8=B0=83=E7=94=A8=20#7?= =?UTF-8?q?73?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.MD | 3 +++ docs/README.md | 23 +++++++++++++++++++++++ main.js | 17 +++++++++++++++++ module_example/test.js | 22 ++++++++++++++++++++++ package.json | 3 ++- 5 files changed, 67 insertions(+), 1 deletion(-) create mode 100644 main.js create mode 100644 module_example/test.js diff --git a/CHANGELOG.MD b/CHANGELOG.MD index 13c3c57..3060d05 100644 --- a/CHANGELOG.MD +++ b/CHANGELOG.MD @@ -1,4 +1,7 @@ # 更新日志 +### 3.31.0 | 2020.05.18 +- 支持 `Node.js` 调用,参考`module_example` 文件夹下的 `test.js` + ### 3.30.0 | 2020.05.17 - 登录接口返回内容增加`cookie`字段,支持手动传入cookie diff --git a/docs/README.md b/docs/README.md index 623b223..8c09673 100644 --- a/docs/README.md +++ b/docs/README.md @@ -215,6 +215,29 @@ fetch(url).then(function() { ``` v3.3.0 后支持使用 PAC代理,如 `?proxy=http://192.168.0.1/proxy.pac` +## 可以在Node.js调用 +v3.31.0后支持Node.js调用,导入的方法为`module`内的文件名,返回内容包含`status`和`body`,`status`为状态码,`body`为请求返回内容,参考`module_example` 文件夹下的 `test.js` +```js +const { login_cellphone, user_cloud } = require('NeteaseCloudMusicApi') +async function main() { + try { + const result = await login_cellphone({ + phone: '手机号', + password: '密码' + }) + console.log(result) + const result2 = await user_cloud({ + cookie: result.body.cookie // 凭证 + }) + console.log(result2.body) + + } catch (error) { + console.log(error) + } +} +main() +``` + ## 更新到 v3.0 说明 !>2018.10.14 更新到 3.0.0,使用了模块化机制,因为部分接口参数和 url 做了调整,如还不想升级到 3.0.0,请查看 [v2 的文档](http://binaryify.github.io/NeteaseCloudMusicApi/#/v2), [更新日志](https://github.com/Binaryify/NeteaseCloudMusicApi/blob/master/CHANGELOG.MD), [2.0+下载地址](https://github.com/Binaryify/NeteaseCloudMusicApi/releases/tag/v2.20.5), 同时 2.0+ 将不再维护 diff --git a/main.js b/main.js new file mode 100644 index 0000000..afd85be --- /dev/null +++ b/main.js @@ -0,0 +1,17 @@ +const fs = require('fs') +const path = require('path') +const request = require('./util/request') + +let obj = {} +fs.readdirSync(path.join(__dirname, 'module')).reverse().forEach(file => { + if(!file.endsWith('.js')) return + let fileModule = require(path.join(__dirname, 'module', file)) + obj[file.split('.').shift()] = function (data) { + return fileModule({ + ...data, + cookie: data.cookie ? data.cookie : {} + }, request) + } +}) + +module.exports = obj \ No newline at end of file diff --git a/module_example/test.js b/module_example/test.js new file mode 100644 index 0000000..c126a6d --- /dev/null +++ b/module_example/test.js @@ -0,0 +1,22 @@ +const { login_cellphone, user_cloud, album_sublist } = require('../main') +async function test() { + try { + const result = await login_cellphone({ + phone: '手机号', + password: '密码' + }) + console.log(result) + const result2 = await user_cloud({ + cookie: result.body.cookie + }) + console.log(result2.body) + const result3 = await album_sublist({ + cookie: result.body.cookie + }) + console.log(result3.body) + + } catch (error) { + console.log(error) + } +} +test() \ No newline at end of file diff --git a/package.json b/package.json index baadd05..d2135cb 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "NeteaseCloudMusicApi", - "version": "3.30.0", + "version": "3.31.0", "description": "网易云音乐 NodeJS 版 API", "scripts": { "start": "node app.js", @@ -13,6 +13,7 @@ "音乐", "网易云音乐nodejs" ], + "main": "main.js", "husky": { "hooks": { "pre-commit": "lint-staged"