node-08-转发请求-中间件

本文涉及的产品
Serverless 应用引擎免费试用套餐包,4320000 CU,有效期3个月
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
性能测试 PTS,5000VUM额度
简介: 1.客户端直接写 网易或者天气等第三方接口会报跨域2.所以需要客户端向服务端发请求,来获取数据3. 服务端根据客户端的请求去获取天气,新闻,等接口然后把数据给客户端

0.前言


1.客户端直接写 网易或者天气等第三方接口会报跨域

2.所以需要客户端向服务端发请求,来获取数据

3.服务端根据客户端的请求去获取天气,新闻,等接口
然后把数据给客户端


1.客户端 html



<button>请求网易数据</button>
     <script>
       $("button").click(function(){
           $.ajax({
               url:"http://127.0.0.1:9111/api",
               type:"get",
               dataType:"json",
               success:function(data){
                   console.log(data)
               }
           })
       });
     </script>



2.服务端



const http = require("http");
const fs = require("fs");
const url = require("url");
http.createServer(function (req,res) {
    res.writeHead(200, {
        "content-type": "text/html;charset=utf-8"
      });
      let urlObj = url.parse(req.url, true);
    let pathname = urlObj.pathname;
    if(/(.*)\.html$/.test(pathname)) {
        let rs = fs.createReadStream(__dirname + pathname);
        rs.pipe(res);
    } else if (pathname === "/api") {
        // 让node向网易服务器发起网络请求,
        // http模块负责,底层实现是C++的不存在同源策略 
//填入网址 比如 百度 英雄联盟英雄介绍的接口等等
        let netUrl = ""
        // 发起请求 注意不要简写res上面服务器监听已经是res了!!!
        http.get(netUrl, function (response) {
            // 回调里的response不是请求的结果  和post请求很像
            // 是一个对象,我们需要监听该对象的data和end事件来拼接保存最终的数据
            let allData = "";
            response.on("data", function (chunck) {
                allData += chunck;
            });
            response.on("end", function () {
                res.end(allData);
            });
        });
    } else {
        res.end();
    }
}).listen(9111)



3.其实很多情况下,都可以通过后台转发请求,


比如天气类接口,股票信息类等

这种转发其实也是node的一个应用 中间件

中间件就是中间层 这只是初识


4.Tips


注意还是上个章节 以服务器端口号打开客户端网页,不要用传统方式打开网页 会跨域


http://127.0.0.1:服务器写的端口/网页名字




相关文章
|
28天前
|
JavaScript 安全 中间件
深入浅出Node.js中间件机制
【10月更文挑战第36天】在探索Node.js的奥秘之旅中,中间件的概念如同魔法一般,它让复杂的请求处理变得优雅而高效。本文将带你领略这一机制的魅力,从概念到实践,一步步揭示如何利用中间件简化和增强你的应用。
|
2月前
|
JavaScript
Node.js GET/POST请求
10月更文挑战第6天
36 2
Node.js GET/POST请求
|
1月前
|
消息中间件 JavaScript 中间件
深入浅出Node.js中间件机制
【10月更文挑战第24天】在Node.js的世界里,中间件如同厨房中的调料,为后端服务增添风味。本文将带你走进Node.js的中间件机制,从基础概念到实际应用,一探究竟。通过生动的比喻和直观的代码示例,我们将一起解锁中间件的奥秘,让你轻松成为后端料理高手。
29 1
|
18天前
|
Web App开发 JSON JavaScript
Node.js 中的中间件机制与 Express 应用
Node.js 中的中间件机制与 Express 应用
|
2月前
|
JSON JavaScript 中间件
深入浅出Node.js中间件机制
本文将带你探索Node.js中一个核心概念——中间件机制。我们将通过浅显的语言和生动的比喻,揭示中间件如何作为请求和响应之间的“交通枢纽”,在应用程序中起到至关重要的作用。从基础原理到实际应用,你将了解到中间件不仅简化了代码结构,还提高了开发效率,是Node.js开发不可或缺的一部分。
54 1
|
2月前
|
JavaScript 安全 中间件
深入浅出Node.js中间件机制
【10月更文挑战第4天】在探索Node.js的海洋中,中间件机制犹如一座灯塔,为开发者指引方向。本文将带你一探究竟,从浅入深地理解这一核心概念。我们将通过生动的比喻和实际代码示例,揭示中间件如何在请求和响应之间搭建桥梁,实现功能的扩展与定制。无论你是初学者还是有经验的开发者,这篇文章都将为你提供新的视角和深入的理解。
55 0
|
3月前
|
JavaScript 前端开发 中间件
深入浅出Node.js中间件模式
【9月更文挑战第13天】本文将带你领略Node.js中间件模式的魅力,从概念到实战,一步步揭示如何利用这一强大工具简化和增强你的Web应用。我们将通过实际代码示例,展示中间件如何在不修改原有代码的情况下,为请求处理流程添加功能层。无论你是前端还是后端开发者,这篇文章都将为你打开一扇通往更高效、更可维护代码的大门。
|
4月前
|
监控 中间件 Go
Go 中间件的优雅实现:处理请求的艺术
Go 中间件的优雅实现:处理请求的艺术
|
4月前
|
JavaScript 中间件 开发者
深入浅出Node.js中间件机制
【8月更文挑战第31天】本文将带你领略Node.js中间件的奥秘,通过直观的案例分析,揭示其背后的设计哲学。你将学会如何运用中间件构建强大而灵活的后端应用,以及在面对复杂业务逻辑时如何保持代码的清晰与高效。
|
4月前
|
设计模式 JavaScript 中间件
深入浅出Node.js中间件机制
【8月更文挑战第31天】在Node.js的世界里,中间件如同魔法般存在,它让复杂的请求处理变得井然有序。本文将带你领略中间件的奥秘,从原理到实战,一步步揭开它的神秘面纱。你将学会如何运用中间件来构建强大而灵活的后端应用,就像拼乐高一样有趣。