node.js 发送https请求

此博客展示了如何在Node.js中使用HTTPS模块发起GET请求,并结合iconv-lite进行编码转换。同时,它演示了如何创建一个简单的Express应用,监听3000端口,响应路由请求并返回处理后的数据。
摘要由CSDN通过智能技术生成
const https = require('https');
const iconv = require('iconv-lite');

const express = require('express');
const app = express();

let result = '';


let options = {
    hostname: 'localhost',
    path: '/',
    rejectUnauthorized: false
};

https.get(options, (res) => {
    let datas = [];
    let size = 0;

    res.on('data', (data)=> {   
        datas.push(data);
        size += data.length;
    });

    res.on('end', () => {
        console.log('end');
        let buff = Buffer.concat(datas,size);
        result = iconv.decode(buff, 'utf8');
        result = JSON.parse(result.trim());
       
    })
}).on('error', (err) => {
    console.log(err.message);
})

let server = app.listen(3000, () => {
    console.log('server running....3000');
});

app.get('/', (req,res) => {
    res.send(result);
});

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Node.js 是基于 Chrome V8 引擎的 JavaScript 运行环境。它允许开发者利用 JavaScript 这种现代化、高效的语言编写服务器端程序,并将其部署到 Web 和应用服务领域。Node.js 接收 HTTP 请求是一个核心功能,它使得 Node.js 成为了构建高性能、事件驱动的网络应用程序的理想选择。 ### Node.js 处理 HTTP 请求的基本流程: #### 1. **建立连接**: 当客户端(通常是浏览器)向 Node.js 服务器发起请求时,TCP 连接首先会建立起来。这种连接由 Node.js 的底层库 `libuv` 管理,它负责处理 I/O 操作,包括网络通信。 #### 2. **解析请求**: 一旦连接建立,Node.js 使用内置模块如 `http` 或 `https` 来接收并解析来自客户端的 HTTP 请求。HTTP 请求通常包含以下几个部分: - 请求行(方法、URL、HTTP版本) - 请求头(包含各种元数据,如用户代理、接受编码等) - 请求体(如果有的话) #### 3. **执行回调函数**: 在请求解析之后,Node.js 将回调函数传递给 `request` 对象。开发者可以在这个回调函数中编写处理逻辑,例如读取请求体、查询数据库、生成动态内容等等。 #### 4. **生成响应**: 处理完请求后,服务器需要将结果返回给客户端。这包括创建 HTTP 响应头部以及响应主体,然后通过 `writeHead()` 和 `end()` 方法发送回客户端。 #### 5. **关闭连接**: 响应发送完毕后,Node.js 自动关闭 TCP 连接,释放资源并等待下一个请求的到来。 ### 示例代码: 下面是一个简单的 Node.js 服务器示例,用于处理 GET 请求并返回一些文本信息: ```javascript const http = require('http'); const server = http.createServer((req, res) => { if (req.method === 'GET') { if (req.url === '/') { res.statusCode = 200; res.setHeader('Content-Type', 'text/plain'); res.end('Hello, World!'); } else { res.statusCode = 404; res.end('Not found'); } } else { res.statusCode = 405; res.end('Method Not Allowed'); } }); server.listen(3000, () => { console.log('Server running on port 3000'); }); ``` 这个例子展示了如何定义一个基本的 Node.js HTTP 服务器,监听并处理特定的 URL 请求。 ### 相关问题: 1. **Node.js 中如何优化 HTTP 请求性能?** 2. **在 Node.js 应用中如何处理并发的 HTTP 请求?** 3. **解释一下 Node.js 的非阻塞 I/O 模型如何影响其处理 HTTP 请求的方式?**
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值