用户登录
用户注册

分享至

教你如何用Node实现API的转发(某音乐)

  • 作者: 抱着嫦娥烤玉兔24484406
  • 来源: 51数据库
  • 2021-08-30

前言

你有没有过这样的经历:每当想写个项目来学习新技术的时候,却发现因为没有一套成熟的免费接口,而导致想法被扼杀摇篮。前段时间,笔者准备学一下hooks的姿势;苦于没有比较好的数据源。然后就找到了这个倒霉的咪咕音乐,并成功实现了接口转发。

本文主要用到了 node、express

node、express

node.js 是一个基于 chrome v8 引擎的 javascript 运行环境。

node.js 使用了一个事件驱动、非阻塞式 i/o 的模型,使其轻量又高效。

express 基于 node.js 平台,快速、开放、极简的 web 开发框架

快速上手

文档目录
├── 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

首先需要在导入下载好的安装包,并尝试开启一个服务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,并实现一个简易的转发

  ...
  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`)
  })

第三步:我们需要把axiox进行一些封装

待更新内容

  • 请求函数的封装
  • useragent的封装
  • apilist: 不同api的封装

注:

本文涉及的代码还是非常简单的,更多的高大上功能还需要自己去折腾吧。

这里有完整版代码,ts + node + express 欢迎 star star star 传送门>>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

软件
前端设计
程序设计
Java相关