摘要:在公司的项目中用了向前端还是我提供数据接口和渲染页面。有一些操作是和端交互,所以需要写一些代理转发请求,从网上找了一些的代理库,要不就是横生要不就是功能不完全,只能代理请求,于是用写了个简单的,代码挺简单的,写篇博文记录下。
在公司的项目中用了 koa 向前端(还是我)提供数据接口和渲染页面。有一些操作是和 Java 端交互,所以需要写一些代理转发请求,从网上找了一些koa的代理库,要不就是bug横生;要不就是功能不完全,只能代理 get 请求,于是用 node-fetch 写了个简单的 proxy ,代码挺简单的,写篇博文记录下。
用到了 fetch api,可以看 node-fetch
// proxy.js import fetch from "node-fetch" export default (...args) => { return fetch.apply(null, args).then(function (res) { return res.text() }) } } // 没错,就是这么简单,稍微把fetch封装下就可以了 // app.js import koa from "koa" import proxy from "./proxy" const app = koa() const proxyServer = koa() app.use(function* (next) { if ("/users" === this.path && "GET" === this.method) this.body = yield proxy("http://localhost:8087/users") if ("/user" === this.path) this.body = yield proxy("http://localhost:8087/user", { method: "POST", headers: { "Accept": "application/json", "Content-Type": "application/json" }, body: JSON.stringify({ name: "Hubot", login: "hubot", }) }) yield next }) proxyServer.use(function* (next) { if ("/users" === this.path && "GET" === this.method) this.body = { "test": 1 } if ("/user" === this.path && "POST" === this.method) { this.body= { "data" : `yes, it"s right` } } yield next }) app.listen(8086) proxyServer.listen(8087) console.log("server start 8086") console.log("server start 8087")
上面 app.js 中创建了两个 server,8086端口为代理 server, 8087端口为被代理的 server,访问 localhost:8086/users 会返回 {"test": 1},说明get请求代理成功,同理访问 localhost:8086/user,会返回
{ "data": "yes, it"s right"},说明成功代理了post请求并返回了被代理server的结果。
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/86195.html
摘要:简介搭建多页面服务端渲染技术点搭建服务创建页面路由模板引擎组合打包多页面端异步请求服务端日志打印项目源码运行一现代服务端渲染的由来服务端渲染概念是指,浏览器向服务器发出请求页面,服务端将准备好的模板和数据组装成完整的返回给浏览器展示前端后 简介 nodejs搭建多页面服务端渲染 技术点 koa 搭建服务 koa-router 创建页面路由 nunjucks 模板引擎组合html ...
摘要:前言第三方登入太常见了,微信,微博,总有一个你用过。本项目源码地址第三方登入第三方登入主要基于。授权回掉处理获取在第一步授权请求成功后会给应用返回一个回掉。 前言 第三方登入太常见了,微信,微博,QQ...总有一个你用过。当然看这篇文章的你,应该还用过github登入。这篇分享是在上一篇基于node的登入例子(node-koa-mongoose)的基础增加了github账号第三方授权登...
摘要:背景最近在做一个基于的微信公众平台脚手架,由于我只有一个域名,现在同时有好几个应用在上面挂载着,所以只能做一下反向代理,可是反向代理只能代理动态文件,对于静态资源貌似没有什么好的解决方法本文针对以上问题进行逐步解决,通过修改相关配置,并结合 背景 最近在做一个基于koa的微信公众平台脚手架,由于我只有一个域名demozhan.com,现在同时有好几个web应用在上面挂载着,所以只能做一...
摘要:背景最近在做一个基于的微信公众平台脚手架,由于我只有一个域名,现在同时有好几个应用在上面挂载着,所以只能做一下反向代理,可是反向代理只能代理动态文件,对于静态资源貌似没有什么好的解决方法本文针对以上问题进行逐步解决,通过修改相关配置,并结合 背景 最近在做一个基于koa的微信公众平台脚手架,由于我只有一个域名demozhan.com,现在同时有好几个web应用在上面挂载着,所以只能做一...
阅读 1143·2021-11-24 09:38
阅读 3252·2021-11-19 09:56
阅读 2973·2021-11-18 10:02
阅读 740·2019-08-29 12:50
阅读 2578·2019-08-28 18:30
阅读 878·2019-08-28 18:10
阅读 3681·2019-08-26 11:36
阅读 2660·2019-08-23 18:23