NODE笔记 1 http模块

news2024/11/17 9:30:08

简单的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提供了大量能使我们快速便捷地处理数据的函数和方法。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

springCould中的Stream-从小白开始【12】

&#x1f95a;今日鸡汤&#x1f95a; 见过一些人&#xff0c;他们朝九晚五&#x1f62d;&#xff0c;有时也要加班&#xff0c;却能把生活过得很&#x1f60e;有趣。他们有自己的爱好&#xff0c;不怕独处。他们有自己的坚持&#xff0c;哪怕没人在乎。&#x1f926;‍♂️ 开心…

【Web】CTFSHOW PHP文件包含刷题记录(全)

温故知新。 目录 web78 web79 web80 web81 web82 web83 web84 web85 web86 web87 web88 web78 伪协议base64编码直接读出文件内容就行 ?filephp://filter/convert.base64-encode/resourceflag.php web79 一眼data伪协议包含php脚本 ?filedata://text/plain,<…

rust语言介绍篇

Rust出现就是为了解决C面临的所有问题。Rust是一门系统编程语言 [1]&#xff0c;专注于安全 [2]&#xff0c;尤其是并发安全&#xff0c;支持函数式和命令式以及泛型等编程范式的多范式语言。Rust在语法上和C类似 [3]&#xff0c;设计者想要在保证性能的同时提供更好的内存安全…

【财务数据分析经验分享】如何进行三大报表的年度解读

很快就要到年底了&#xff0c;大家又要开始进行年度经营数据分析了。今天我就用一个例子来演示财务数据分析三张报表的年度分析。 为了更便捷的从年度来分析三大报表&#xff0c;我分别以同样的基本思路对三大报表开发出三张年度分析报表&#xff1a; 1、 按年度来进行筛选分…

windows搭建银河麒麟v10虚拟机

需要用到&#xff1a; 已将安装包放置云盘 自取 VMware Workstation Pro16 https://cloud.189.cn/t/vYZNjqbQ7zUr (访问码:a2pd) 银河麒麟v10镜像 https://cloud.189.cn/t/j6ZNfmnYfYRr (访问码:1icf) 也可以去官网下载&#xff1a;https://www.kylinos.cn 1.安装VM 无…

解密!神奇代码消除 Vue 中 Mac 电脑左滑右滑页面跳转

想知道如何让Mac电脑左滑右滑不再意外跳转页面吗&#xff1f;本文将揭示一个独家秘籍&#xff0c;通过简单的一行代码&#xff0c;让你的用户体验飞速提升&#xff01;别错过这个让你的Vue表格组件更顺畅的宝贵技巧&#xff01; 最近&#xff0c;我在使用 Vue 开发表格组件时遇…

动态pv策略和组件

pv和pvc&#xff0c;存储卷&#xff1a; 存储卷&#xff1a; emptyDir 容器内部&#xff0c;随着pod销毁&#xff0c;emptyDir也会消失 不能做数据持久化 hostPath&#xff1a;持久化存储数据 可以和节点上的目录做挂载。pod被销毁了数据还在 NFS&#xff1a;一台机器&am…

【AI视野·今日NLP 自然语言处理论文速览 第七十四期】Wed, 10 Jan 2024

AI视野今日CS.NLP 自然语言处理论文速览 Wed, 10 Jan 2024 Totally 38 papers &#x1f449;上期速览✈更多精彩请移步主页 Daily Computation and Language Papers Model Editing Can Hurt General Abilities of Large Language Models Authors Jia Chen Gu, Hao Xiang Xu, J…

轮询定时器 清除 + vue2.0

需求? Gin Vue Element UI框架中, 我的大屏可视化项目, 大屏页面, 里边写了多个轮询定时器. 离开页面需要清理掉, 要不然切换路由还会在后台运行, 页面是自动缓存状态, 也不存在销毁一说了 所以通过路由router配置中, 页面路由监听中, 进行监听路由变化, 但是也没生效 …

支付宝异步验签踩的坑

最近公司要做支付宝小程序 我作为服务端就要给小程序配置下单啊&#xff0c;异步回调同步支付状态等功能 就不可避免的使用到了支付宝异步验签 首先背景是我是PHP语言&#xff0c;然后验签方式是RSA2 一开始写原生验签方法&#xff0c;验签失败&#xff0c;后面又搞sdk 验签…

性能测试很简单-JMeter性能测试实践

最近破费买了一台服务器&#xff0c;准备搭建自己的网站&#xff0c;顺便将自己开发的一些测试小工具部署到服务器上&#xff0c;虽然机器配置一般&#xff0c;还是决定对服务器进行压测一番&#xff0c;看一下服务器性能如何。本次压测选择的工具是JMeter&#xff0c;这个工具…

vue Element Plus Cascader级联选择器点击标签选中复选框

element-plus原功能 element-plus的Cascader级联选择器点击标签时是不会选中复选框的&#xff0c;我们想要实现点击标签时也能选中复选框这个效果&#xff0c;那么就要用到一些原生的方法 实现效果 mounted() {// Cascader 级联选择器: 点击文本就让它自动点击前面的input就可…

在Windows服务器上部署项目【虚拟机版】

一. jdk的安装 1、直接双击jdk应用程序&#xff0c;然后下一步下一步即可。 2、安装完成后&#xff0c;在此电脑➡右键➡属性➡高级系统变量。 3、配置环境变量 新建JAVA_HOMEC:\Program Files\Java\jdk1.8.0_144 编辑pathpath%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin; 4、测试&am…

uniapp微信小程序投票系统实战 (SpringBoot2+vue3.2+element plus ) -投票创建页面实现

锋哥原创的uniapp微信小程序投票系统实战&#xff1a; uniapp微信小程序投票系统实战课程 (SpringBoot2vue3.2element plus ) ( 火爆连载更新中... )_哔哩哔哩_bilibiliuniapp微信小程序投票系统实战课程 (SpringBoot2vue3.2element plus ) ( 火爆连载更新中... )共计21条视频…

[足式机器人]Part2 Dr. CAN学习笔记-Advanced控制理论 Ch04-6 线性控制器设计Linear Controller Design

本文参考&#xff1a; B站&#xff1a;DR_CAN Dr. CAN学习笔记-Advanced控制理论 Ch04-6 线性控制器设计Linear Controller Design

C++核心编程——类和对象(一)

本专栏记录C学习过程包括C基础以及数据结构和算法&#xff0c;其中第一部分计划时间一个月&#xff0c;主要跟着黑马视频教程&#xff0c;学习路线如下&#xff0c;不定时更新&#xff0c;欢迎关注。 当前章节处于&#xff1a; ---------第1阶段-C基础入门 ---------第2阶段实战…

运动耳机哪个最好?2024年无线运动耳机品牌排行榜

​挑选一款适合运动的耳机是每位运动爱好者必备的决策。这些耳机不仅为你提供优质音乐&#xff0c;更在设计上考虑了运动场景&#xff0c;确保在高强度运动中稳固又舒适的佩戴感。今天&#xff0c;我将向你介绍几款在运动时表现卓越的运动耳机&#xff0c;助你全情投入每一次锻…

Unity组件开发--长连接webSocket

1.下载安装UnityWebSocket 插件 https://gitee.com/cambright/UnityWebSocket/ 引入unity项目&#xff1a; 2.定义消息体结构&#xff1a;ExternalMessage和包结构Package&#xff1a; using ProtoBuf; using System; using System.Collections; using System.Collections.Ge…

uniapp微信小程序投票系统实战 (SpringBoot2+vue3.2+element plus ) -我参与的投票列表实现

锋哥原创的uniapp微信小程序投票系统实战&#xff1a; uniapp微信小程序投票系统实战课程 (SpringBoot2vue3.2element plus ) ( 火爆连载更新中... )_哔哩哔哩_bilibiliuniapp微信小程序投票系统实战课程 (SpringBoot2vue3.2element plus ) ( 火爆连载更新中... )共计21条视频…

LeetCode刷题--- 按摩师

个人主页&#xff1a;元清加油_【C】,【C语言】,【数据结构与算法】-CSDN博客 个人专栏 力扣递归算法题 http://t.csdnimg.cn/yUl2I 【C】 ​​​​​​http://t.csdnimg.cn/6AbpV 数据结构与算法 ​​​http://t.csdnimg.cn/hKh2l 前言&#xff1a;这个专栏主要讲述动…