教你如何用Node實(shí)現(xiàn)API的轉(zhuǎn)發(fā)(某音樂(lè))
前言
你有沒(méi)有過(guò)這樣的經(jīng)歷:每當(dāng)想寫個(gè)項(xiàng)目來(lái)學(xué)習(xí)新技術(shù)的時(shí)候,卻發(fā)現(xiàn)因?yàn)闆](méi)有一套成熟的免費(fèi)接口,而導(dǎo)致想法被扼殺搖籃。前段時(shí)間,筆者準(zhǔn)備學(xué)一下hooks的姿勢(shì);苦于沒(méi)有比較好的數(shù)據(jù)源。然后就找到了這個(gè)倒霉的咪咕音樂(lè),并成功實(shí)現(xiàn)了接口轉(zhuǎn)發(fā)。
本文主要用到了 Node、Express
Node、Express
Node.js 是一個(gè)基于 Chrome V8 引擎的 JavaScript 運(yùn)行環(huán)境。
Node.js 使用了一個(gè)事件驅(qū)動(dòng)、非阻塞式 I/O 的模型,使其輕量又高效。
Express 基于 Node.js 平臺(tái),快速、開(kāi)放、極簡(jiǎn)的 Web 開(kāi)發(fā)框架
快速上手
文檔目錄 ├── dist ├── node_modules ├── public │ └── index.html ├── src │ └── apiList │ ├── index.js │ └── client_play_list_tag.js │ └── ... │ └── utils │ └── request.js │ └── userAgent.js │ ├── index.js ├── package.json
package.json
{ "name": "testnodeapi", "version": "1.0.0", "description": "", "main": "index.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1", "dev": "node src/index.js" }, "author": "alkun", "license": "ISC", "dependencies": { "axios": "^0.19.0", "express": "^4.17.1" } }
第一步:配置入口文件index.ts
首先需要在導(dǎo)入下載好的安裝包,并嘗試開(kāi)啟一個(gè)服務(wù)const express = require('express')
const app = express() const port = 5555 app.use((req, res) => { res.send('hahhaha') }) app.listen(port, ()=>{ console.log(`Example app listening on http://127.0.0.1:${port}`) })
第二步:安裝axios,并實(shí)現(xiàn)一個(gè)簡(jiǎn)易的轉(zhuǎn)發(fā)
... const axios = require('axios') app.use(async (req, res) => { let resp = await axios({ baseURL: 'http://m.music.migu.cn/migu/remoting/', method: 'get', url: '/cms_list_tag', }) res.send(resp.data) }) app.listen(8888, () => { console.log(`Example app listening on http://127.0.0.1:8888`) })
第三步:我們需要把a(bǔ)xiox進(jìn)行一些封裝
待更新內(nèi)容
- 請(qǐng)求函數(shù)的封裝
- userAgent的封裝
- apiList: 不同api的封裝
注:
本文涉及的代碼還是非常簡(jiǎn)單的,更多的高大上功能還需要自己去折騰吧。
這里有完整版代碼,TS + Node + Express 歡迎 STAR STAR STAR 傳送門>>
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Node.js數(shù)據(jù)流Stream之Readable流和Writable流用法
這篇文章介紹了Node.js數(shù)據(jù)流Stream之Readable流和Writable流的用法,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-07-07nodejs+axios爬取html出現(xiàn)中文亂碼并解決示例
這篇文章主要為大家介紹了nodejs+axios爬取html出現(xiàn)中文亂碼示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-06-06Node實(shí)戰(zhàn)之不同環(huán)境下配置文件使用教程
這篇文章主要給大家介紹了關(guān)于Node實(shí)戰(zhàn)之不同環(huán)境下配置文件使用的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。2018-01-01Node.js靜態(tài)文件服務(wù)器改進(jìn)版
這篇文章主要介紹了Node.js靜態(tài)文件服務(wù)器改進(jìn)版的相關(guān)資料,需要的朋友可以參考下2016-01-01用nodejs的實(shí)現(xiàn)原理和搭建服務(wù)器(動(dòng)態(tài))
下面小編就為大家?guī)?lái)一篇用nodejs的實(shí)現(xiàn)原理和搭建服務(wù)器(動(dòng)態(tài))。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-08-08使用NodeJs 開(kāi)發(fā)微信公眾號(hào)(三)微信事件交互實(shí)例
這篇文章主要介紹了使用NodeJs 開(kāi)發(fā)微信公眾號(hào)(三)微信事件交互實(shí)例的相關(guān)資料,需要的朋友可以參考下2016-03-03