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

本文涉及的产品
Serverless 应用引擎免费试用套餐包,4320000 CU,有效期3个月
云原生网关 MSE Higress,422元/月
MSE Nacos/ZooKeeper 企业版试用,1600元额度,限量50份
简介: 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:服务器写的端口/网页名字




相关文章
|
5月前
|
JavaScript 前端开发 API
Node.js中发起HTTP请求的五种方式
以上五种方式,尽管只是冰山一角,但已经足以让编写Node.js HTTP请求的你,在连接世界的舞台上演奏出华丽的乐章。从原生的 `http`到现代的 `fetch`,每种方式都有独特的风格和表现力,让你的代码随着项目的节奏自由地舞动。
593 65
|
12月前
|
Web App开发 JSON JavaScript
Node.js 中的中间件机制与 Express 应用
Node.js 中的中间件机制与 Express 应用
|
JavaScript
Node.js GET/POST请求
10月更文挑战第6天
169 2
Node.js GET/POST请求
|
JavaScript 安全 中间件
深入浅出Node.js中间件机制
【10月更文挑战第36天】在探索Node.js的奥秘之旅中,中间件的概念如同魔法一般,它让复杂的请求处理变得优雅而高效。本文将带你领略这一机制的魅力,从概念到实践,一步步揭示如何利用中间件简化和增强你的应用。
|
消息中间件 JavaScript 中间件
深入浅出Node.js中间件机制
【10月更文挑战第24天】在Node.js的世界里,中间件如同厨房中的调料,为后端服务增添风味。本文将带你走进Node.js的中间件机制,从基础概念到实际应用,一探究竟。通过生动的比喻和直观的代码示例,我们将一起解锁中间件的奥秘,让你轻松成为后端料理高手。
166 1
|
JSON JavaScript 中间件
深入浅出Node.js中间件机制
本文将带你探索Node.js中一个核心概念——中间件机制。我们将通过浅显的语言和生动的比喻,揭示中间件如何作为请求和响应之间的“交通枢纽”,在应用程序中起到至关重要的作用。从基础原理到实际应用,你将了解到中间件不仅简化了代码结构,还提高了开发效率,是Node.js开发不可或缺的一部分。
177 1
|
JavaScript 前端开发 中间件
深入浅出Node.js中间件模式
【9月更文挑战第13天】本文将带你领略Node.js中间件模式的魅力,从概念到实战,一步步揭示如何利用这一强大工具简化和增强你的Web应用。我们将通过实际代码示例,展示中间件如何在不修改原有代码的情况下,为请求处理流程添加功能层。无论你是前端还是后端开发者,这篇文章都将为你打开一扇通往更高效、更可维护代码的大门。
|
设计模式 JavaScript 中间件
深入浅出Node.js中间件机制
【8月更文挑战第31天】在Node.js的世界里,中间件如同魔法般存在,它让复杂的请求处理变得井然有序。本文将带你领略中间件的奥秘,从原理到实战,一步步揭开它的神秘面纱。你将学会如何运用中间件来构建强大而灵活的后端应用,就像拼乐高一样有趣。
|
JavaScript Serverless Linux
函数计算产品使用问题之遇到Node.js环境下的请求日志没有正常输出时,该如何排查
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。
|
JavaScript 安全 中间件
深入浅出Node.js中间件机制
【10月更文挑战第4天】在探索Node.js的海洋中,中间件机制犹如一座灯塔,为开发者指引方向。本文将带你一探究竟,从浅入深地理解这一核心概念。我们将通过生动的比喻和实际代码示例,揭示中间件如何在请求和响应之间搭建桥梁,实现功能的扩展与定制。无论你是初学者还是有经验的开发者,这篇文章都将为你提供新的视角和深入的理解。
206 0

热门文章

最新文章