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


Posted in Javascript onSeptember 20, 2019

前言

你有没有过这样的经历:每当想写个项目来学习新技术的时候,却发现因为没有一套成熟的免费接口,而导致想法被扼杀摇篮。前段时间,笔者准备学一下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 传送门>>

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

Javascript 相关文章推荐
比较详细的关于javascript中void(0)的具体含义解释
Aug 02 Javascript
js获取当前select 元素值的代码
Apr 19 Javascript
document.getElementById的简写方式(获取id对象的简略写法)
Sep 10 Javascript
基于jquery实现的可以编辑选择的下拉框的代码
Nov 19 Javascript
javascript 兼容所有浏览器的DOM扩展功能
Aug 01 Javascript
javascript继承之为什么要继承
Nov 10 Javascript
简单的js计算器实现
Oct 26 Javascript
根据Bootstrap Paginator改写的js分页插件
Dec 25 Javascript
javascript 中null和undefined区分和比较
Apr 19 Javascript
Vue.js 单页面多路由区域操作的实例详解
Jul 17 Javascript
layer弹出层全屏及关闭方法
Aug 17 Javascript
Bootstrap实现模态框效果
Sep 30 Javascript
使用layui实现树形结构的方法
Sep 20 #Javascript
生成无限制的微信小程序码的示例代码
Sep 20 #Javascript
浅谈layui分页控件field参数接收对象的问题
Sep 20 #Javascript
vuex根据不同的用户权限展示不同的路由列表功能
Sep 20 #Javascript
微信小程序如何播放腾讯视频的实现
Sep 20 #Javascript
Vue+iview+webpack ie浏览器兼容简单处理
Sep 20 #Javascript
微信小程序跳转到其他网页(外部链接)的实现方法
Sep 20 #Javascript
You might like
php 删除数组元素
2009/01/16 PHP
destoon在各个服务器下设置URL Rewrite(伪静态)的方法
2014/06/21 Servers
PHP curl 抓取AJAX异步内容示例
2014/09/09 PHP
详解在YII2框架中使用UEditor编辑器发布文章
2018/11/02 PHP
很酷的javascript loading效果代码
2008/06/18 Javascript
javascript 写类方式之六
2009/07/05 Javascript
javascrip客户端验证文件大小及文件类型并重置上传
2011/01/12 Javascript
始终在屏幕中间显示Div的代码(css+js)
2011/03/10 Javascript
z-blog SyntaxHighlighter 长代码无法换行解决办法(基于jquery)
2015/11/18 Javascript
老生常谈JavaScript数组的用法
2016/06/10 Javascript
vue.js通过自定义指令实现数据拉取更新的实现方法
2016/10/18 Javascript
js禁止浏览器的回退事件
2017/04/20 Javascript
centos 上快速搭建ghost博客方法分享
2018/05/23 Javascript
react quill中图片上传由默认转成base64改成上传到服务器的方法
2019/10/30 Javascript
Nodejs 数组的队列以及forEach的应用详解
2021/02/25 NodeJs
Python使用Socket(Https)Post登录百度的实现代码
2012/05/18 Python
Python中尝试多线程编程的一个简明例子
2015/04/07 Python
Python文件右键找不到IDLE打开项解决办法
2015/06/08 Python
python获取外网ip地址的方法总结
2015/07/02 Python
基于python socketserver框架全面解析
2017/09/21 Python
安装python3的时候就是输入python3死活没有反应的解决方法
2018/01/24 Python
linux环境中没有网络怎么下载python
2019/07/07 Python
Tensorflow 卷积的梯度反向传播过程
2020/02/10 Python
python GUI库图形界面开发之PyQt5线程类QThread详细使用方法
2020/02/26 Python
如何使用PyCharm将代码上传到GitHub上(图文详解)
2020/04/27 Python
Django ModelForm组件原理及用法详解
2020/10/12 Python
Django中使用Celery的方法步骤
2020/12/07 Python
image-set实现Retina屏幕下图片显示详细介绍
2012/12/24 HTML / CSS
美国婚礼和派对礼品网站:Kate Aspen(新娘送礼会、迎婴派对)
2018/03/28 全球购物
澳大利亚在线批发商:Simply Wholesale
2021/02/24 全球购物
优秀的教师个人的中文求职信
2013/09/21 职场文书
法学专业毕业生自荐信范文
2013/12/18 职场文书
2014社区三八妇女节活动方案
2014/03/30 职场文书
红色故事演讲稿
2014/05/22 职场文书
2014年小学少先队工作总结
2014/12/18 职场文书
大学生创业计划书
2019/06/24 职场文书