NODE笔记 1 http模块

简单的http模块使用

文章目录


前言

node 提供了 http 模块,首先需要简单的介绍http

http协议(超文本传输协议),在web和网络领域都十分重要。在客户-服务通讯的请求响应中,报文大都是基于http。

 


 可以先新建一个简单的js文件,引入http模块,保存demo后,进入控制台,输入 node 文件名.js 后,打开网址即可进行调试学习。终止该服务可以在cmd界面按 Ctrl+C。

一、http模块 简单使用 

0.基础用法

写入简单的js文件保存,demo如下:

var http = require('http') ;
const { type } = require('os');

var httpServer = http.createServer((request,response)=>{
    response.setHeader("content-type","text/html;charset=utf-8")
    response.write('\r\n this is 9012 httpdemo02 program ,中文测试 \r\n');
    response.end('\r\n http Server End ') ;
});

httpServer.listen('9012',()=>{ 
    console.log('\r\n server is listen 9012 port  ');
});

结果如下:

 response.setHeader('content-type','text/html;charset=utf-8'); 设置响应头可以正常显示中文

更新代码需要先在终端终止该服务,再启动该服务。响应体含有中文,需要设置响应头 。同时,代码中的 \r\n 并未起到换行效果。

1.获取请求信息

http模块的 创建服务模块中的创建服务的回调函数参数中的request和response分部表示请求和响应。可以在node中接收请求信息。代码如下:

const http = require('http') ;

var httpServer = http.createServer((request,response)=>{
    let {url,method} = request ;
    response.setHeader("content-type","text/html;charset=utf-8");
    response.write(request.url+"<---url---method->");
    response.write(request.method);
    response.end('   Server node demo03 end');
}) ;

httpServer.listen('9013',()=>{console.log("port 9013 listen ");
});

效果如图:

关于路径:如果访问网站的时候,只填写了IP地址或者是地域名信息,此时请求的路径为 / 

 

关于favicon.ico:这个请求是属于浏览器自动发送的请求

 URL仅支持路径和查询参数,method默认为GET ,其他参数如下 :

含义语法内容
请求方法request.method
请求路径request.url
请求头request.headers
URL路径

 require('url').parse(request.url).pathname;

URL字符串查询 require('url').parse(request.url,TRUE).query;


注意事项:
1.request.url只能获取路径以及查询字符串,无法获取URL中的域名以及协议的内容
2.request.headers将请求信息转化成一个对象,并将属性名都转化成了「小写」

 

二、 http模块练习
 

0. 使用https模块向接口发送并请求接收数据

const https = require('https') ;
 
let fs = require('fs');
 https.get('https://XXXXX.XXXXX.cn/api', function (res) {
     var json = '';
    res.on('data', function (d) {
        json += d;
       
    });

    res.on('end',function(){
        //获取到的数据
        json = JSON.parse(json);

        // console.log(json.list) ;
        var jsonListData = json.list ;
        let ws = fs.createWriteStream('E:\\nodePra\\infor.txt');
        for(var index=0;index<jsonListData.length;index++){
            // ws.write(index+"--------"+"\r\n"  ) ;
  ws.write(jsonListData[index].unicode+"\r\n") ;
  ws.write(jsonListData[index].name+"\r\n") ;
  ws.write(jsonListData[index].mobile+"\r\n") ;
  ws.write(jsonListData[index].field_6321+"\r\n") ;
    ws.write(jsonListData[index].field_6698+"\r\n") ;
    ws.write(jsonListData[index].field_9073+"\r\n") ;
    ws.write(jsonListData[index].field_9567+"\r\n") ;
   ws.write(jsonListData[index].field_8156+"\r\n") ;
    ws.write(jsonListData[index].field_5028+"\r\n") ;
   ws.write(jsonListData[index].field_4156+"\r\n") ;
    ws.write(jsonListData[index].field_6281+"\r\n") ;
   ws.write(jsonListData[index].field_9997+"\r\n") ;
    ws.write(jsonListData[index].field_1486+"\r\n") ;
   ws.write(jsonListData[index].field_5396+"\r\n") ;
  
            ws.write(jsonListData[index].signin_time+"\r\n"+"\r\n"  ) ;
        }
        ws.end ;
        console.log("json.list") ;
    });
}).on('error', function (e) {
    console.error(e);

});

在以上代码中隐藏了接口的域名信息,将接口响应的数据写入到了指定的infor.txt文件中。http和https的请求模块差不多,但是实际中https用的多一些。

 

1.引入库

代码如下(示例):

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
import warnings
warnings.filterwarnings('ignore')
import  ssl
ssl._create_default_https_context = ssl._create_unverified_context

2.基础补充

代码如下(示例):

data = pd.read_csv(
    'https://labfile.oss.aliyuncs.com/courses/1283/adult.data.csv')
print(data.head())

该处使用的url网络请求的数据。


总结

提示:这里对文章进行总结:
例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/317787.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

美力AI变革:生成式AI在美妆和时尚领域的巨大改变

美妆AI技术解决方案提供商—玩美移动于今日发布最新全球趋势报告&#xff1a;《生成式AI在美妆和时尚领域的巨大改变》&#xff0c;就生成式AI在美妆和时尚行业的崛起&#xff0c;为品牌商提供了富有洞见的深入分析。该报告分析了来自玩美移动屡获殊荣的玩美系列APP应用套件的大…

imx6ull基于yocto工程的l汇编点亮ed

通过汇编点亮led 在裸机状态下通过汇编点亮led&#xff0c;即没有操作系统&#xff0c;(uboot kernel rootfs 都不需要实现&#xff09;。 led点亮原理 1.GPIO复用 根据原理图&#xff0c;找到led对应的引脚&#xff08;pin)&#xff0c;复用为GPIO&#xff08;只有GPIO才能…

力扣热题100

排序 快速排序 #include <iostream> #include <vector> using namespace std;// 快速排序函数&#xff0c;传入引用&#xff0c;以便修改原始数组 void quick_sort(vector<int>& q, int l, int r) {// 边界条件&#xff1a;如果左边界大于等于右边界&am…

胶囊-药品广告数据库-解锁药品营销市场

随着医药技术的不断进步&#xff0c;药品市场的竞争也日益激烈&#xff0c;而「广告营销」一直以来都是医药企业发展过程中的重要环节&#xff0c;越来越多的药企意识到药品广告在品牌传播和营销方面的巨大潜力。 而一个好的药品广告投放方案往往需要进行全方位的市场调研&…

Linux Debian12使用VSCode和Python搭建flask开发环境

一、安装VSCode 在Linux Debian12系统上安装VSCode教程可以参考网上相关教程。 二、安装Python 打开VSCode&#xff0c;安装python和python扩展包&#xff0c;如下图所示&#xff1a; 三、创建Python虚拟环境 1.新建文件夹testFlask 2.用vscode打开文件夹testFlask&#xf…

Java副本的概念

在Java中&#xff0c;"副本"&#xff08;copy&#xff09;一词可以用于描述不同的概念&#xff0c;具体取决于上下文。以下是两个常见的用法&#xff1a; 对象的副本&#xff1a;在Java中&#xff0c;当你创建一个对象并将其赋值给另一个变量时&#xff0c;实际上是创…

Jetpack Compose -> 声明式UI Modifier

前言 本章主要介绍下 Compose 的声明式 UI 以及初级写法&#xff1b; 什么是声明式UI 传统UI 传统 UI 方式来声明UI <androidx.appcompat.widget.LinearLayoutCompat android:layout_width"match_parent" android:layout_height"match_parent&quo…

大数据调度框架Oozie,这个学习网站让你事半功倍!

Oozie是一个基于工作流引擎的开源框架&#xff0c;由Cloudera公司贡献给Apache。它主要用于管理和调度Apache Hadoop作业&#xff0c;支持的任务类型包括Hadoop MapReduce、Pig Jobs等。 Oozie的核心概念包括workflow jobs和coordinator jobs。Workflow jobs是由多个动作&#…

快递平台长期最低价格收费,需要寄快递享折扣优惠的请看这里 !

除了我们平时去菜鸟驿站寄快递或者在快递公司的官网上下单等方式外&#xff0c;我们还可以在我们平日使用的微信小程序中选择快递平台享受快递物流折扣。不用像其他主流快递公司想用优惠券一样下载官方APP。您还可以享受无忧特派送监管服务。今天给大家介绍一下我最常用的一款&…

鸿蒙开发已解决-Failed to connect to gitee.com port 443: Time out 连接超时提示

文章目录 项目场景:问题描述原因分析:解决方案:解决方案1解决方案2:解决方案3:此Bug解决方案总结解决方案总结**心得体会:解决连接超时问题的三种方案**项目场景: 导入Sample时遇到导入失败的情况,并提示“Failed to connect to gitee.com port 443: Time out”连接超…

用通俗易懂的方式讲解:大模型微调方法总结

大家好&#xff0c;今天给大家分享大模型微调方法&#xff1a;LoRA,Adapter,Prefix-tuning&#xff0c;P-tuning&#xff0c;Prompt-tuning。 文末有大模型一系列文章及技术交流方式&#xff0c;传统美德不要忘了&#xff0c;喜欢本文记得收藏、关注、点赞。 文章目录 1、LoRA…

“所有伙食开销统计:轻松查看,智能管理你的餐饮支出“

你是否经常为伙食开销感到困扰&#xff0c;不知道如何有效控制和管理&#xff1f;现在&#xff0c;有了我们的伙食开销统计工具&#xff0c;这些问题将得到轻松解决&#xff01; 首先第一步&#xff0c;我们要进入晨曦记账本并在上方功能栏里选择“查看方式”。并在弹出来的列表…

SpringBoot之优化高并发场景下的HttpClient并提升QPS

HttpClient优化思路 使用连接池&#xff08;简单粗暴&#xff09; 长连接优化&#xff08;特殊业务场景&#xff09; httpclient和httpget复用 合理的配置参数&#xff08;最大并发请求数&#xff0c;各种超时时间&#xff0c;重试次数&#xff09; 异步请求优化&#xff0…

gitlab导入/还原代码仓库(离线导入本地代码仓库及历史提交记录)

gitlab安装 在线 导入&#xff08;还原&#xff09;代码仓库 已有的代码代码可能托管于 GitHub、Bitbucket Cloud 、Bitbucket Server 、FogBugz 、Gitea 等平台&#xff0c;只要你有合适的权限&#xff0c;都可以使用 GitLab的在线导入功能直接从这些平台导入&#xff0c;如…

山西电力市场日前价格预测【2024-01-13】

日前价格预测 预测说明&#xff1a; 如上图所示&#xff0c;预测明日&#xff08;2024-01-13&#xff09;山西电力市场全天平均日前电价为231.81元/MWh。其中&#xff0c;最高日前电价为345.71元/MWh&#xff0c;预计出现在00:15。最低日前电价为0.00元/MWh&#xff0c;预计出…

声明式管理方法(yaml文件)

声明式管理方法&#xff08;yaml文件&#xff09; 声明式管理方法&#xff08;yaml文件&#xff09;&#xff1a; 1、适合对资源的修改操作 2、声明式管理依赖于yaml文件&#xff0c;所有的内容都在yaml文件当中声明 3、编辑好的yaml文件&#xff0c;还是要依靠陈述式的命令…

数据结构链表完整实现(负完整代码)

文章目录 前言引入1、链表定义及结构链表的分类3、单向不带头链表实现实现完整代码 4、带头双向循环链表实现实现完整代码 前言 引入 在上一篇文章中&#xff0c;我们认识了顺序表&#xff0c;但是在许多情况中&#xff0c;顺序表在处理一些事件时还存在许多问题&#xff0c;比…

计算机缺失msvcr100.dll如何修复?分享五种实测靠谱的方法

在计算机系统的日常运行与维护过程中&#xff0c;我们可能会遇到一种特定的故障场景&#xff0c;即系统中关键性动态链接库文件msvcr100.dll的丢失。msvcr100.dll是Microsoft Visual C Redistributable Package的一部分&#xff0c;对于许多基于Windows的应用程序来说&#xff…

增广路算法 DFS求解 最大网络流问题

最大网络流问题 最大网络流问题是这样的&#xff0c;有一个有向图&#xff0c;假定有一个源点&#xff0c;有一个汇点&#xff0c;源点有流量出来&#xff0c;汇点有流量进入&#xff0c;有向图上的边的权重为该条边可通过的最大流量(方向为边的方向)&#xff0c;问从源点到汇…

Servlet-Request

一、预览 在上一篇Servlet体系结构中&#xff0c;我们初步了解了怎么快速本篇将介绍Servlet中请求Request的相关内容&#xff0c;包括Request的体系结构&#xff0c;Request常用API。 二、Request体系结构 我们注意到我们定义的Servlet类若实现Servlet接口时&#xff0c;请求…