当前位置: 首页 > news >正文

node使用http模块

文章目录

  • 前言
  • 一、创建http服务
  • 二、设置http的响应报文
  • 三、不同请求响应不同数据
  • 四、请求响应不同html文件
    • 1. 添加www文件夹
    • 2. js代码
    • 3. 效果
  • 五、get和post请求的区别


前言

提示:这里可以添加本文要记录的大概内容:


一、创建http服务

// 1:导入http模块
const http = require('http')// 2:创建服务器
//  req  request    请求对象    存储请求的报文信息(请求路径,方法,参数)
//  res  response   响应对象     负责响应客户端的数据
const serve = http.createServer((req, res) => {res.end('hello word')
})// 3:监听端口,启动服务
/**
* 参数说明
* @param {type}  port  端口号
* @param {type}  hostname(非必填) 主机号(ip地址) 不写默认是本机ip*ip 网线在网络中的唯一地址 ,(相当于是人的身份证)端口号 每一个电脑都有很多应用程序,而每个应用程序都有一个编号称之为端口号,识别是哪个应用程序发送的请求
* @param {type}  callback 回调函数
*/
serve.listen(9000, () => {console.log('服务器已经启动了');
})

在这里插入图片描述

二、设置http的响应报文

// 1:导入http模块
const http = require('http')const serve = http.createServer((req, res) => {// 1:设置响应体(重点)// 注意点:rep.end()只能响应字符串和二进制两种数据,否则程序会出错//(1)如果想返回对象类型,转成json字符串//(2)end方法一次只能响应一个res.end(JSON.stringify({name:'张三',age:18}));// 2:设置响应状态码res.statuseCode = 209;// 3:设置响应状态的描述res.statusMessage = '描述'// 4:设置响应头res.setHeader('header')})serve.listen(9000, () => {console.log('服务器已经启动了');
})

在这里插入图片描述

三、不同请求响应不同数据

注意点:解决乱码问题:res.setHeader(‘Content-Type’,‘text/plain;charset=utf8’);


// 1:导包
const http = require('http');
// 2:创建服务器
const server = http.createServer((req, res) => {console.log(req.url);if (req.url == '/') {// 解决乱码问题res.setHeader('Content-Type','text/plain;charset=utf8');res.end('首页')} else if (req.url == 'index') {res.setHeader('Content-Type','text/plain;charset=utf8');res.end('首页')} else if (req.url == 'login') {res.setHeader('Content-Type','text/plain;charset=utf8');res.end('登录成功')}
})server.listen(9000, () => {console.log('服务器开启成功');
})

在这里插入图片描述
在这里插入图片描述

四、请求响应不同html文件

1. 添加www文件夹

文件夹中加上index.html、login.html、404.html文件

在这里插入图片描述

2. js代码


// 1:导包
const fs = require('fs');
const http = require('http');
const path = require('path');
// 2:创建服务器
const server = http.createServer((req, res) => {console.log(req.url);if (req.url == '/' || req.url == '/index') {// 拼接绝对路径fs.readFile(path.join(__dirname, 'www', 'index.html'), (err,data)=> {if (err) {throw err;} else {// 解决乱码问题res.setHeader('Content-Type','text/plain;charset=utf8');res.end(data)}})} else if (req.url == '/login') {fs.readFile(path.join(__dirname, 'www', 'login.html'), (err,data)=> {if (err) {throw err;} else {// 解决乱码问题res.setHeader('Content-Type','text/plain;charset=utf8');res.end(data)}})} else{fs.readFile(path.join(__dirname, 'www', '404.html'), (err,data)=> {if (err) {throw err;} else {// 解决乱码问题res.setHeader('Content-Type','text/plain;charset=utf8');res.end(data)}})}
})server.listen(9000, () => {console.log('服务器开启成功');
})

3. 效果

在这里插入图片描述

五、get和post请求的区别

(1)作用:get主要用来获取数据,post用来提交数据。
(2)参数位置:get参数在url后面,post在请求体里面。
(3)安全性:由于get参数在url上会暴露,所以post更安全。
(4)请求限制:get一般为2k,post没有限制。

相关文章:

node使用http模块

文章目录 前言一、创建http服务二、设置http的响应报文三、不同请求响应不同数据四、请求响应不同html文件1. 添加www文件夹2. js代码3. 效果 五、get和post请求的区别 前言 提示:这里可以添加本文要记录的大概内容: 一、创建http服务 // 1&#xff1a…...

Golang Study 进阶

Golang 本文章中记录一些 Golang 中的语言特性,包括 init 函数,面向对象,defer 关键字,并发编程等。 init 函数与导包 init函数的执行流程是早于main函数的,如果想在main函数执行前做一些事情,可以在init函…...

Shopee买家通系统详细功能介绍

Shopee买家通系统是一款全自动化操作的软件,可以批量注册买家号、自动加购加心愿单、自动下单等。 批量注册买家号 准备好相应资料后,在运行注册时可以自动输入手机号、自动输入短信、自动输入设置的密码。 自动加购加心愿单 根据设置的关键词及产品编…...

git生成gitee和github两个不同的公钥

配置多个公钥 Windows 用户建议使用 Windows PowerShell 或者 Git Bash,在 命令提示符 下无 cat 和 ls 命令。 1、生成公钥文件: 通过命令 ssh-keygen 生成 SSH Key: ssh-keygen -t rsa -C "Gitee SSH Key" -f ~/.ssh/gitee_be…...

基于SSM的同学录网站

末尾获取源码 开发语言:Java Java开发工具:JDK1.8 后端框架:SSM 前端:Vue 数据库:MySQL5.7和Navicat管理工具结合 服务器:Tomcat8.5 开发软件:IDEA / Eclipse 是否Maven项目:是 目录…...

第十五节——观察者watch

一、概念 在Vue中,watch是一个用于监听数据变化的功能。它可以监听一个或多个数据,并在数据发生变化时执行相应的操作。当我们需要在数据变化时执行异步操作、计算属性或执行一些副作用时,watch就派上了用场啦。注意。watch默认只能进行浅层…...

tauri 访问静态资源,响应头为Content-Type:‘text/html‘

现象 报错: Error: THREE.FBXLoader: Unknown format. at FBXLoader.parse (index-f8291142.js:22050:15) at Object.onLoad (index-f8291142.js:22033:22) at index-f8291142.js:19769:20 使用threejs 加载fbx模型文件时,返回头中Content-…...

【佳学基因检测】Node.js中如何读取并调用内容

【佳学基因检测】Node.js中如何读取并调用内容 先给出功能实现代码: var http require(http); var fs require(fs); http.createServer(function (req, res) {fs.readFile(jiaxuejiyin.html, function(err, data) {res.writeHead(200, {Content-Type: text/html…...

java根据音频流或者音频的地址获取分贝的工具类

工具类 import lombok.extern.slf4j.Slf4j;import javax.sound.sampled.AudioFormat; import javax.sound.sampled.AudioInputStream; import javax.sound.sampled.AudioSystem; import javax.sound.sampled.UnsupportedAudioFileException; import java.io.BufferedInputStre…...

Pycharm出现的一些问题和解决办法

1.每次启动打开多个项目,速度很慢。改为每次启动询问打开哪个单一项目 Setting -> Appearance & Behavior -> System Settings -> Project -> 关闭Reopen projects on startop 2.一直显示《正在关闭项目closing project》,关不上 pycha…...

进程优先级(nice值,top指令),独立性,竞争性,进程切换(时间片),抢占与出让,并发并行概念

目录 优先级 引入 为什么会存在优先级 特点 优先级值 nice值 更改nice值 top指令 独立性 竞争性 进程切换 引入 时间片 上下文切换 调度器 抢占与出让 强占 出让 并发和并行 并发 并行 优先级 引入 与权限不同的是,权限是能不能做的问题,优先级是什…...

若依微服务集成Mybatis-plus详细教程

本章教程,主要介绍,若依开源框架微服务版本,如何集成Mybatis-plus。 目录 一、引入依赖 1、在根pom.xml中的properties里加入Mybatis-plus版本 2、在根pom.xml中引入Mybatis-plus依赖...

WebSocket:实现实时双向通信的利器

WebSocket:实现实时双向通信的利器 WebSocket是一种强大的协议,用于实现实时双向通信,允许客户端和服务器之间建立长久的连接,以便实时传递数据。这个协议在现代Web应用中发挥着至关重要的作用,因为它使得开发实时性要…...

【uniapp】html和css-20231031

我想用控件和样式来表达应该会更贴切,html和css的基础需要看看。 关于html:https://www.w3school.com.cn/html/html_layout.asp 关于css:https://www.w3school.com.cn/css/index.asp html让我们实现自己想要的布局(按钮&#xff0…...

Docker Tomcat 搭建文件服务器

本文基于openwrt上进行。 步骤 1: 安装 Docker 如果尚未安装Docker,首先需要安装Docker。根据你的操作系统,参考Docker官方文档来完成安装, 这里不做详细介绍。 步骤 2: 拉去docker Tomcat镜像 进入openwrt管理界面,docker选项中 拉取最新…...

无感刷新 token

文章目录 背景基本思路需解决的问题请求进入死循环标记刷新 token 请求避免请求拦截覆盖 refresh token并发刷新 token 完整代码注意:拦截器注册顺序另一种方案:事件驱动刷新 前景提要: ts 简易封装 axios,统一 API 实现在 confi…...

【MISRA C 2012】Rule 2.6 函数不应该包含未使用的标签声明

1. 规则1.1 原文1.2 分类 2. 关键描述3. 代码实例 1. 规则 1.1 原文 Rule 2.6 A function should not contain unused label declarations Category Advisory Analysis Decidable, Single Translation Unit Applies to C90, C99 1.2 分类 规则2.6:函数不应该包含…...

Ubuntu:使用apache2部署Vue开发的网站

作者:CSDN @ _乐多_ 本文记录了Vue项目打包到部署到ubuntu系统的全部步骤。 文章目录 一、代码打包二、安装 Apache2三、开启/关闭apache23.1 开启3.2 关闭四、部署Vue应用到Apache24.1 首次部署4.2 更新部署五、全部操作截图一、代码打包 首先,确保您已经在本地开发环境中…...

使用IO完成端口实现简单回显服务器

说明 使用IO完成端口实现简单回显服务器,因为是测试用的,所以代码很粗糙。 提醒 使用的是ReadFile、WriteFile来实现Overlapped IO,正式场合应该用WSARecv、WSASend,原因:来自《Windows网络编程技术》 8.2.5节 在这里…...

【ROS】Nav2源码之nav2_behavior_tree详解

1、简介 nav2_bt_navigator实现ROS2节点以行为树的方式来处理。 nav2_behavior_tree模块提供如下功能: 一个c模板类,可以轻松地将ROS2 动作(actions)和服务(services)集成到行为树(Behavior Trees)中。特定于导航的行为树节点。通用的BehaviorTreeEngine类&#…...

基于STM32的温室大棚智能监控与无线调控系统设计

摘要:本设计了一种基于STM32的温室大棚智能监控系统。系统采用STM32F103作为主控芯片,集成DHT11温湿度传感器、土壤湿度传感器和C O2传感器实现环境参数采集。通过ESP32-C3 WiFi模块实现数据无线传输和远程控制,OLED屏幕进行本地显示。项目简…...

为OpenClaw智能体工作流配置Taotoken作为稳定的模型供应后端

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 为OpenClaw智能体工作流配置Taotoken作为稳定的模型供应后端 在构建基于OpenClaw的复杂自动化工作流时,一个稳定且模型…...

OpenAvatarChat终极部署指南:如何构建企业级数字人对话系统

OpenAvatarChat终极部署指南:如何构建企业级数字人对话系统 【免费下载链接】OpenAvatarChat 项目地址: https://gitcode.com/gh_mirrors/op/OpenAvatarChat OpenAvatarChat是一款革命性的模块化交互数字人对话框架,为开发者提供了从本地推理到云…...

AI人工智能行业的现状:为什么说AI从业者的需求越来越大

一、AI产业爆发式增长:需求激增的时代底色2026年,人工智能产业已步入爆发式增长的黄金期,成为驱动全球经济复苏与产业变革的核心引擎。从全球市场来看,2025年AI市场规模达7575.8亿美元,同比增长18.7%,预计2…...

ElevenLabs芬兰语TTS部署踩坑实录(含CI/CD流水线集成模板):1次失败=2.3小时调试,我们帮你省下87%时间

更多请点击: https://kaifayun.com 第一章:ElevenLabs芬兰语TTS部署踩坑实录(含CI/CD流水线集成模板):1次失败2.3小时调试,我们帮你省下87%时间 核心痛点:芬兰语语音合成的隐性陷阱 ElevenLab…...

如何在智能电视上打造完美的家庭影院:Jellyfin Android TV客户端完整指南

如何在智能电视上打造完美的家庭影院:Jellyfin Android TV客户端完整指南 【免费下载链接】jellyfin-androidtv Android TV Client for Jellyfin 项目地址: https://gitcode.com/gh_mirrors/je/jellyfin-androidtv 想要将智能电视、NVIDIA Shield或亚马逊Fir…...

Taotoken官方折扣活动如何切实降低模型调用成本

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 Taotoken官方折扣活动如何切实降低模型调用成本 1. 成本感知:从按需付费到计划性支出 对于个人开发者或中小型团队而言…...

为什么92%的Lovable新手在第5小时放弃?——资深架构师拆解3个致命认知盲区

更多请点击: https://codechina.net 第一章:Lovable应用开发入门与环境搭建 Lovable 是一个面向现代 Web 应用的轻量级全栈框架,专为快速构建可维护、可扩展且富有表现力的交互式应用而设计。它融合了声明式 UI、响应式状态管理与内置服务抽…...

【Flink学习】(五)Flink 并行度与任务链,任务运行核心原理

本文主要整理Flink 底层任务运行机制,学会合理设置并行度,初步具备任务调优思维。 一、并行度概念 并行度代表 Flink 任务运行的线程数量,决定任务处理速度,分为全局并行度、算子并行度、客户端并行度。 二、并行度设置 分为三种方…...

Vivado 2022.2的.xsa文件,真能通吃Petalinux 2019.2到2022.2吗?我的混搭实测记录

Vivado与Petalinux版本混搭实战:打破常规的.xsa文件兼容性探索 在FPGA开发领域,Xilinx工具链的版本匹配一直被视为金科玉律。但当我们手头只有高版本Vivado,却需要兼容旧版Petalinux环境时,是否真的必须严格遵循官方版本对应表&a…...