首页 » 网站推广 » php转发api技巧_node 中心层若何做的请求合并转发

php转发api技巧_node 中心层若何做的请求合并转发

访客 2024-11-25 0

扫一扫用手机浏览

文章目录 [+]

1.实现思路

①搭建http做事器,利用Node的http模块的createServer方法②吸收客户端发送的要求,便是要求报文,要求报文中包括要求行、要求头、要求体③将要求报文发送到目标做事器,利用http模块的request方法

2.实现步骤

php转发api技巧_node 中心层若何做的请求合并转发

第一步:http做事器搭建

const http = require("http");const server = http.createServer();server.on('request',(req,res)=>{ res.end("hello world")})server.listen(3000,()=>{ console.log("running");})第二步:吸收客户端发送到代理做事器的要求报文

const http = require("http");const server = http.createServer();server.on('request',(req,res)=>{ // 通过req的data事宜和end事宜吸收客户端发送的数据 // 并用Buffer.concat处理一下 // let postbody = []; req.on("data", chunk => { postbody.push(chunk); }) req.on('end', () => { let postbodyBuffer = Buffer.concat(postbody); res.end(postbodyBuffer) })})server.listen(3000,()=>{ console.log("running");})

这一步紧张数据在客户端到做事器端进行传输时在nodejs中须要用到buffer来处理一下。
处理过程便是将所有吸收的数据片段chunk塞到一个数组中,然后将其合并到一起还原出源数据。
合并方法须要用到Buffer.concat,这里不能利用加号,加号会隐式的将buffer转化为字符串,这种转化不屈安。

php转发api技巧_node 中心层若何做的请求合并转发
(图片来自网络侵删)
第三步:利用http模块的request方法,将要求报文发送到目标做事器第二步已经得到了客户端上传的数据,但是短缺要求头,以是在这一步根据客户端发送的要求须要布局要求头,然后发送

const http = require("http");const server = http.createServer();server.on("request", (req, res) => { var { connection, host, ...originHeaders } = req.headers; var options = { "method": req.method, // 随表找了一个网站做测试,被代理网站修正这里 "hostname": "www.nanjingmb.com", "port": "80", "path": req.url, "headers": { originHeaders } } //吸收客户端发送的数据 var p = new Promise((resolve,reject)=>{ let postbody = []; req.on("data", chunk => { postbody.push(chunk); }) req.on('end', () => { let postbodyBuffer = Buffer.concat(postbody); resolve(postbodyBuffer) }) }); //将数据转发,并吸收目标做事器返回的数据,然后转发给客户端 p.then((postbodyBuffer)=>{ let responsebody=[] var request = http.request(options, (response) => { response.on('data', (chunk) => { responsebody.push(chunk) }) response.on("end", () => { responsebodyBuffer = Buffer.concat(responsebody) res.end(responsebodyBuffer); }) }) // 利用request的write方法通报要求体 request.write(postbodyBuffer) // 利用end方法将要求发出去 request.end(); })});server.listen(3000, () => { console.log("runnng");})

标签:

相关文章

Python编程从入门到精通,探索编程之美

编程已经成为现代社会的一项基本技能。Python作为一种简单易学、功能强大的编程语言,在我国教育领域备受关注。本文将从Python...

网站推广 2025-03-02 阅读1 评论0

Scum07代码编程之美与适用方法

编程已成为当今社会不可或缺的技能之一。Scum07代码作为一款经典的编程语言,在我国众多程序员中备受推崇。本文将深入解析Scum0...

网站推广 2025-03-02 阅读1 评论0

Linux环境下的前端代码运行优化与步骤

前端技术逐渐成为软件开发的核心。Linux操作系统因其稳定性、安全性、开放性等特点,成为众多开发者和企业青睐的运行环境。本文将从L...

网站推广 2025-03-02 阅读1 评论0