没有合适的资源?快使用搜索试试~ 我知道了~
Koa 代理http请求,解决跨域问题 1、为什么用Koa做跨域代理? “最初为了解决跨域问题,我把站点部署到了nginx上就解决了问题。一次偶然的面试机会,面试官提出了一个假设我需要对提交api和api返回的数据进行适配,那么nginx是不是就无法满足了。当然这个问题的提出,让我考虑到其实如果自己搭一个站点,通过这个站点进行转发,适配第三方api的请求和应答不就好了。那么要搭一个站点的语言其实有很多,例如.net,java,nodejs,php…,那为什么最后选择nodejs呢?对于我来说最重要的原因,应该就是nodejs的轻量级和javascript语言亲和性。 2、搭建nodejs应
资源详情
资源评论
资源推荐
Koa代理代理Http请求的示例代码请求的示例代码
Koa 代理http请求,解决跨域问题
1、为什么用、为什么用Koa做跨域代理?做跨域代理?
“最初为了解决跨域问题,我把站点部署到了nginx上就解决了问题。一次偶然的面试机会,面试官提出了一个假设我需要对提
交api和api返回的数据进行适配,那么nginx是不是就无法满足了。当然这个问题的提出,让我考虑到其实如果自己搭一个站
点,通过这个站点进行转发,适配第三方api的请求和应答不就好了。那么要搭一个站点的语言其实有很多,例
如.net,java,nodejs,php…,那为什么最后选择nodejs呢?对于我来说最重要的原因,应该就是nodejs的轻量级和javascript语
言亲和性。
2、搭建、搭建nodejs应用应用
由于Koa2刚出,毕竟学技术,那么就学最新的。
既然搭建程序那么就从程序的入口开始做,首先写程序的路由
const fs = require('fs')
const Router = require('koa-router');
const {httpHandle} = require('../Infrastructure/httpHandle');
const koaBody = require('koa-body')({
multipart :true
});
const render = (page) => {
return new Promise((resolve, reject) => {
let viewUrl = `./view/${page}`
fs.readFile(viewUrl, "binary", (err, data) => {
if (err) {
reject(err)
} else {
resolve(data)
}
})
})
}
let api = new Router();
api.get('*', httpHandle)
.post('*', koaBody, httpHandle)
.put('*', koaBody, httpHandle).del('*', koaBody, httpHandle);
let common = new Router();
common.get('*', async (ctx) => {
ctx.body = await render('index.html');
})
let router = new Router();
router.use('/api', api.routes(), api.allowedMethods());
router.use('/', common.routes(), common.allowedMethods());
module.exports = router;
其次就是处理代理的请求
const httpRequest = (ctx) => {
return new Promise((resolve) => {
delete ctx.request.header.host;
const options = {
host,
port,
path: ctx.request.url.substr(4, ctx.request.url.length),
method: ctx.request.method,
headers: ctx.request.header
}
let requestBody='',
body,
head,
chunks = [],
fileFields,
weixin_38581992
- 粉丝: 3
- 资源: 908
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0