教你如何用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 相关文章推荐
控制页面按钮在后台执行期间不重复提交的JS方法
Jun 24 Javascript
js/html光标定位的实现代码
Sep 23 Javascript
javascript获取wx.config内部字段解决微信分享
Mar 09 Javascript
js中判断变量类型函数typeof的用法总结
Aug 09 Javascript
浅谈jQuery中的eq()与DOM中element.[]的区别
Oct 28 Javascript
JavaScript和jQuery制作光棒效果
Feb 24 Javascript
vue2.0模拟锚点的实例
Mar 14 Javascript
JS中判断某个字符串是否包含另一个字符串的五种方法
May 03 Javascript
在Vue中创建可重用的 Transition的方法
Jun 02 Javascript
Element Steps步骤条的使用方法
Jul 26 Javascript
浅谈nuxtjs校验登录中间件和混入(mixin)
Nov 06 Javascript
Nuxt.js nuxt-link与router-link的区别说明
Nov 06 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的图形函数中显示汉字
2006/10/09 PHP
基于PHP magic_quotes_gpc的使用方法详解
2013/06/24 PHP
PHP has encountered a Stack overflow问题解决方法
2014/11/03 PHP
php+mysql查询实现无限下级分类树输出示例
2016/10/03 PHP
php面向对象基础详解【星际争霸游戏案例】
2020/01/23 PHP
让GoogleCode的SVN下的HTML文件在FireFox下正常显示.
2009/05/25 Javascript
javascript 数据类型转换(parseInt,parseFloat)
2010/07/20 Javascript
IE6背景图片不缓存问题解决方案及图片使用策略多个方法小结
2012/05/14 Javascript
ff下JQuery无法监听input的keyup事件的解决方法
2013/12/12 Javascript
js输出阴历、阳历、年份、月份、周示例代码
2014/01/29 Javascript
js匿名函数的调用示例(形式多种多样)
2014/08/20 Javascript
用JavaScript实现用一个DIV来包装文本元素节点
2014/09/09 Javascript
jquery选择器需要注意的问题
2014/11/26 Javascript
JS获取下拉框显示值和判断单选按钮的方法
2015/07/09 Javascript
javascript实现uploadify上传格式以及个数限制
2015/11/23 Javascript
js实现敏感词过滤算法及实现逻辑
2018/07/24 Javascript
如何使用puppet替换文件中的string
2018/12/06 Javascript
浅谈Fetch 数据交互方式
2018/12/20 Javascript
Python中函数的多种格式和使用实例及小技巧
2015/04/13 Python
Python使用PIL库实现验证码图片的方法
2016/03/11 Python
python实现读取并显示图片的两种方法
2017/01/13 Python
简单实现python收发邮件功能
2018/01/05 Python
Python 等分切分数据及规则命名的实例代码
2019/08/16 Python
python实现字典嵌套列表取值
2019/12/16 Python
python 实现分组求和与分组累加求和代码
2020/05/18 Python
Html5之title吸顶功能
2018/06/04 HTML / CSS
美国知名保健品网站:LuckyVitamin(支持中文)
2017/08/09 全球购物
捷克汽车配件和工具销售网站:TorriaCars
2018/02/26 全球购物
介绍一下木马病毒的种类
2015/07/26 面试题
总经理秘书工作职责
2013/12/26 职场文书
公务员个人总结
2015/02/12 职场文书
硕士毕业答辩开场白
2015/05/27 职场文书
老乡会致辞
2015/07/28 职场文书
新店开业策划方案怎么书写?
2019/07/05 职场文书
SQL Server中T-SQL标识符介绍与无排序生成序号的方法
2022/05/25 SQL Server
Windows Server 2012 R2服务器安装与配置的完整步骤
2022/07/15 Servers