JavaScript --Node,js

2023-05-16

// 引用系统模块
const http = require(‘http’)
// 创建 web 服务器
const serve = http.createServer()
// 当客户端 发送请求的时候
server.on(‘require’,(req,res) =>{
// 设置响应头
res.writeHead(200,{
‘Content-Type’: ‘text/html;charset=utf8’
});
//设置响应体
res.write(‘

哈哈哈

’)
// 结束请求
res.end()
});
// 监听 3000 端口
server.listen(3000,error =>{
if(!error) {
console.log(‘服务器已启动, 监听3000端口, 请访问localhost:3000’);
}
})

http 协议
超文本协议, 用于 web 服务器 传输超文本到本地浏览器的传送协议. 基于客户端服务器架构工作

    请求报文
        请求方式
        请求报文

    响应报文'
        HTTP 状态码
        200 请求成功
        404 请求的资源没有找到

    请求参数
        客户端向服务器发送请求时, 有时需要携带一些客户信息, 比如登录. 客户信息需要通过参数的形式
        传递到服务器端

    路由
        路由就是指url 地址与 程序的映射关系, 更改URL 地址 可以改变程序的执行结果. 简单来说就是
        请求什么响应什么

     客户端的请求方式
      1. 浏览器地址栏
      2. Form表单提交
      3. link 标签的href 属性
      4.  script 标签的src 属性
      5.  image 标签的src 属性

     静态资源不需要 处理. 可以直接响应给客户端的资源就是静态资源, 例如css, JavaScript, image 文件

     使用Note.js 的第三方模块 serve-static 处理静态资源的响应 

     Node.js 工作原理

    Node 就是就异步 的应用程序. 在Note中  , 用一个线程 处理所有的请求,  当客户端 向服务器端发送请求时,
     服务器端  的一个线程 处理改请求, 在请求的过程中, 如果去查询或者读取文件, 该线程 不会等待 查询的
     结果, 转而去处理其他的请求, Note 程序 会监控数据库的查询结果, 如果查询完成, 该线程会重新回来
     处理该请求, Note 擅长处理高发并发的网络请求或者频繁的数据去读取应用程序, 不会 带来 
     硬件成本的增加,这种异步的模式显然有效的利用了现有的资源  

    Promiss的出现是为了解决Node.js 异步编程 回调地狱 的问题
    Promiss 本身是一个 构造函数, 要使用 promiss 解决回调地狱的问题 需要使用 new运算符创建Promiss
    的实例对象
    在创建的时候, 需要 传入一个匿名 函数 ,其中有两个 参数 resove. reject


    数据库
    数据库 即是 存储数据的仓库, 它是独立Note.js 之外的软件. 可以通过API 去操作它

    创建集合 实际上就是对集合设定规则
     
     创建文档
        创建文档实际上就是向集合中插入具体的数据

     模板引擎
        模板引擎可以让数据和HTML 模板更加友好的结合,  省去繁琐的字符拼接, 是代码更加易于维护
         高性能的JavaScript 模板引擎,使用 npm install art-template   命令下载


     Express 
        Express 是一个 Note平台的web 应用开发框架, 提供一系列强大特性, 帮助你创建Web应用

      安装
        使用 npm install express      

    框架特性

        1.提供了方便简洁的路由定义方式
        2.对获取 HTTP 请求参数进行了简化处理
        3. 对模板引擎 支持度极高. 方便 渲染动态 HTML 页面
        4. 提供了中间件的机制有效的控制HTTP请求
        5. 拥有大量第三方中间 件对功能进行扩展

    启动

           // 引入 Express 框架
           const  express = require('express');

           // 使用框架 创建 web 服务器
           cosnt app = express()

           // 程序监听 3000 端口
           app.listen(3000);

           app.get('/', (req, res) =>{
               // 对客户端做出响应  send 方法会根据内容的类型自动设置请求头
           }) 
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JavaScript --Node,js 的相关文章

随机推荐

  • 数据区、栈区、堆区、代码区

    简介 1 栈区 stack xff1a 由系统的编译器自动的释放 xff0c 主要用来存放方法中的参数 xff0c 一些临时的局部变量等 xff0c 并且方法中的参数一般在操作完后 xff0c 会由编译器自动的释放掉 2 堆区 heap 由
  • 上位机PC控制UR3机器人实现方式

    一 在计算机上安装urx 库 终端输入 xff1a pip install urx xff1b 参考和例程下载见 xff1a https github com SintefManufacturing python urx xff1b 二 利
  • STM32实战项目-串口打印

    前言 xff1a 本小结主要实现串口打印功能 xff0c 主要将上一结的状态机运行次数 xff0c 通过串口在串口终端上打印出来 xff0c 硬件电路上主要是TTL转USB驱动电路 xff0c 软件上主要有状态机函数 xff0c 串口发送函
  • CURL详解

    原文链接 xff1a https www cnblogs com xishaonian p 6550613 html span class token number 1 span CURL详解 span class token number
  • STM32F103C8T6串口通信

    STMF103C8T6串口通信 串口相关的固件函数 xff1a mainusart cusart h 串口作为 MCU 的重要外部接口 xff0c 同时也是软件开发重要的调试手段 xff0c 其重要性不言而喻 关于STM32F103C8T6
  • 单片机(中断系统-串口通信)

    1 RETI 中断操作指令 这条指令的功能和RET指令相似 xff0c 2条指令的不同之处是 xff1a 本指令清除了中断响应时 xff0c 被置1的MCS 51内部不可寻址的 优先级生效 触发器清零 中断程序完成后 xff0c 一定要执行
  • ESP32 for arduino 的3个hardware serial

    在arduino IDE的开发环境中 xff0c 如果使用的开发板不是arduino的开发平台 xff0c 而是ESP32模组的开发板 xff0c 那么在实际开发中由于ESP32的支持库与arduino不同 xff0c 会使得我们在使用一些
  • 大疆开发板A型基于HAL库驱动M3508直流无刷电机及PID控制

    1 首先 xff0c 我们先了解一下大疆开发板A型的资料 xff0c 官方有提供 官网 xff1a RoboMaster 机甲大师赛 芯片型号STM32F427IIH6 2 了解M3508直流无刷电机的资料 xff0c 官网有提供 3 于是
  • [note] C++ STL初步(二) 迭代器、算法和映射

    STL算法 迭代器和映射总结 迭代器 迭代器的提出 算法函数独立于数据结构无疑是一种很好的思路 xff0c 它高度体现了OOP的核心思想 但很快 xff0c 我们就会发现因各数据结构的访问形式不同 xff0c 困难显而易见 比如 xff1a
  • python 用 xlwings 处理 Excel 中的重复数据

    xlwings 简介 xlwings 是一个 Python 库 简化了 Python 和 Excel 通信 xlwings 让Excel跑得飞快 本文写作背景 amp 需求 amp 方案 因前几个月帮在医院工作的朋友现学现卖用VBA写了段程
  • STM32学习(5)外部中断实验

    STM32 的每个 IO 都可以作为外部中断的中断输入口 xff0c 这点也是 STM32 的强大之处 STM32F103 的中断控制器支持 19 个外部中断 事件请求 每个中断设有状态位 xff0c 每个中断 事件都有独立的触发和屏蔽设置
  • STM32学习(6) 定时器中断实验

    基本定时器功能简介 1 计数器16bit xff0c 只能向上计数 xff0c 只有TIM6和TIM7 2 没有外部的GPIO xff0c 是内部资源 xff0c 只能用来定时 3 时钟来自PCLK1 xff0c 为72M xff0c 可实
  • STM32学习(7)PWM 输出实验

    脉冲宽度调制 PWM xff0c 是英文 Pulse Width Modulation 的缩写 xff0c 简称脉宽调制 xff0c 是利用 微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术 简单一点 xff0c 就是对脉冲宽度的
  • STM32中NVIC_SystemReset()函数的作用?什么时候用?

    STM32软件复位有两种方式 xff08 1 xff09 方式一 xff1a NVIC SystemReset 函数用来复位STM32 注意1 xff1a 从SYSRESETREQ 被置为有效 xff0c 到复位发生器执行复位命令 xff0
  • 一秒钟打印一个100S内的随机数

    1 2 gt Des 一秒钟打印一个100S内的随机数 5 gt Created Time 2021年04月19日 星期一 09时35分27秒 6 7 8 include lt stdio h gt 9 include lt stdlib
  • STM32启动文件学习

    2021 08 09 STM32启动文件学习 启动文件作用 xff1a 初始化堆栈指针SP初始化PC指针初始化中断向量表配置系统时钟调用C库 main函数进入到主程序 启动文件使用的ARM汇编指令 xff1a EQU xff1a 等于 AR
  • 03-串口(UART)的使用

    目录 第一节 UART概述1 1 UART的用处 xff1a 1 2 UART的优点1 3 UART原理与概念1 4 UART数据传输原理与过程1 5 关于电平转换1 6 UART内部具体机制 第二节 UART编程 第一节 UART概述 1
  • python基础知识之开发规范(一)

    1 脚本结构 1 1 头注释 对代码没有用 xff0c 是提供给系统或者解释器使用的 usr bin env 定义 指定路径下的Python解释器 xff0c 已经很少使用 1 2 导入 导入Python的一些功能函数到脚本中 Python
  • vivo真机调试的坑 & adb无线调试

    坑1 xff1a 安装失败 解决方案 xff1a 在工程的gradle properties中加上 android injected testOnly 61 false 坑2 xff1a 总是要输入密码才能安装 解决方案 xff1a 1 开
  • JavaScript --Node,js

    引用系统模块 const http 61 require http 创建 web 服务器 const serve 61 http createServer 当客户端 发送请求的时候 server on require req res 61