目录

一、node.js

1、概念

2、认识前后端交互

3、注意

4、下载

二、常见api

1、读写文件内容

2、更多常见的使用

3、API中文网文档

三、http

1、使用

2、监听请求

3、传回数据给浏览器

四、例子

五、node拓展


一、node.js

1、概念

(1)Node.js 是一个免费的、开源的、跨平台的 JavaScript 运行时环境,不是一门语言,也不是一个框架、库,而是一个JavaScript的运行环境。让JavaScript脱离了浏览器,能够允许开发人员在浏览器之外编写命令行工具和服务器端脚本

例如:我们常关注的浏览器的兼容性,PC端和手机端

图1

(2)更多介绍:参考文档


Source - HTML(超文本标记语言) | MDN


(3)服务端语言:JavaPHPPythonNode.net等,Node使用JavaScript语言,不用再学习一门语言

2、认识前后端交互

图2

图2中

(2)前端向后端获取数据:通过ajax、fetch等等方式去实现,图中虽然只是一条线前端指向后端,但是一般实际的场景下,大量用户访问时,是需要等待的

①这样一个过程既是:中间件,中间的程序根据实际情况,可放入一个或多个,例如:筛选一些恶意请求

②因此node常用于一些中间件的开发, 或者一些微小型的项目

(2)后端:在后端不再是通过协议去传输,因为ajax也是基于浏览器的,而node是通过操作系统去访问的,执行的是如何与其他环境调用,请求

3、注意

(1)浏览器JavaScript支持

  • ECMAScript:基础语法(高阶函数,迭代器,Promise)
  • DOM
  • BOM

(2)Node的JavaScript支持

  • ECMAScript基础语法
  • 没有DOM和BOM【在小程序中也没有BOM和DOM】
  • 会提供一些服务端的API【操作文件(IO流,获取读取文件)、http服务器、加密、RPC等】

RPC(远程调用):服务是可以去调用其他人的服务,由图2及其解释,就是为后端提供的库的调用

4、下载

(1)通过nvm下载步骤,参考文章如下

windows下使用nvm安装node.js_nvm安装nodejs目录是空的_羁城灬的博客-CSDN博客nvm是一个nodejs版本控制下载器,可以通过nvm下载安装想要的nodejs版本,通过nvm指定使用已安装的某个版本,便于快速管理nodejs版本.避免项目对nodejs版本的需求,导致需要重复安装\卸载不同版本的nodejs到官网下载安装包 ......https://blog.csdn.net/qq_44276227/article/details/125561077?csdn_share_tail=%7B%22type%22%3A%22blog%22%2C%22rType%22%3A%22article%22%2C%22rId%22%3A%22125561077%22%2C%22source%22%3A%22qq_44276227%22%7D&ctrtid=lEV01(2)直接到node中文网下载,注意版本用14的

Node.js 中文网Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境。Node.js 使用了一个事件驱动、非阻塞式 I/O 的模型,使其轻量又高效。Node.js 的包管理器 npm,是全球最大的开源库生态系统。https://nodejs.cn/


二、常见api


  • 在工程下创建一个text.txt文件

  • api的引入
// 引入
const fs = require('fs')

1、读写文件内容

(1)读取文件readFile()

①将鼠标放在readFIle()上时会有该方法的提示,如下

②readFile()回调函数的使用

fs.readFile('./text.txt','utf-8',function(err,data){console.log('err:'+err);console.log('data:'+data);
})

③通过node执行方法

进入该工程下的终端,运行api.js该文件

node ./api.js

④当readFile()方法写错文件名,未找到文件时

fs.readFile('./tt.txt','utf-8',function(err,data){console.log('err:'+err);console.log('data:'+data);
})

(2)写入文件内容writeFile()

const data = '高启强'
fs.writeFile('./text.txt',data,'utf-8',function(err){console.log('err:'+err);
})

从结果上看,writeFile()是直接替换文件内容

2、更多常见的使用

(1)fs.appendFile【追加文件内容】:给文件添加内容用

(2)fs.stat:检测是文件还是目录

(3)fs.unlink:删除文件

(4)fs.mkdir:新建目录

(5)fs.readdir:读取文件目录下的所有内容

(6)fs.rmdir:删除文件目录

(7)fs.rename:文件重命名

3、API中文网文档

API 文档 | Node.js 中文网https://nodejs.cn/api-v14/index.html


三、http

http是一个协议,我们可以通过此搭建一个小型的服务器

1、使用

(1)创建项目文件http.js,引入api,创建服务器

const http = require('http')
const server = new http.Server()

(2)监听器

①指定服务运行在哪个端口

server.listen(3000,()=>{console.log("http服务器已启动,运行在http://127.0.0.1:3000");
})

②进入项目文件下的终端,运行http.js文件

③ctrl+C终止服务器

2、监听请求

(1)绑定操作,实时输出请求数据

第一个参数:方法

第二个参数:函数

server.on('request',(req,resp)=>{console.log(req);console.log(resp);
})

(2)实时输出请求地址

server.on('request',(req,resp)=>{console.log(req.url);
})

(3)做其他判断

server.on('request',(req,resp)=>{console.log(req.url);if(req.url === '/login'){console.log('登录');}else if(req.url === '/register'){console.log('注册');}
})

3、传回数据给浏览器

(1)使得请求有回应,浏览器才可正常加载,否则,浏览器会一直在等待响应,等到超时,就不会再请求了

(2)给头部设置内容的类型,防止出现乱码

resp.setHeader('Content-Type','text/html;charset=utf8')


四、例子

1、要求:使用原生http模块,搭建起来一个简单的Node服务器,并返回"hello world"

const http = require('http')const server = new http.Server()server.on('request',(req,resp)=>{console.log(req.url);resp.end('hello world')
})server.listen(3000,()=>{console.log("http服务器已启动,运行在http://127.0.0.1:3000");
})

2、要求:接收网址传输的数据,并按JSON格式打印到终端

const http = require('http')const server = new http.Server()server.on('request',(req,resp)=>{console.log(req.url);if(req.url.includes('request')){const params = req.url.split('?')[1]let data = params.split('&').reduce((pre,cur)=>{pre[cur.split('=')[0]] = cur.split('=')[1]return pre},{})console.log(data);}
})server.listen(3000,()=>{console.log("http服务器已启动,运行在http://127.0.0.1:3000");
})

五、node拓展

1、计算密集型高并发:判断语句、运算语句大量运算

2、I/O密集型高并发(文件IO、网络IO):双十一多人抢购

蓝桥杯Web组备赛笔记7相关推荐

  1. 蓝桥杯Web组备赛笔记6

    目录 一.ElementUI 1.安装 2.简单使用 3.例子 4.其他内容的学习 二.echarts 1.简介 2.考点 3.安装 4.配置项:使用echarts的三步走 5.13届蓝桥真题(3)布 ...

  2. 蓝桥杯Web组备赛笔记1

    目录 一.flex布局 1.详细的使用解释 2.简单例子 3.flex布局要认识两个轴 4.版心布局 5.13届蓝桥真题 (1,6) 二.grid布局 1.应用 2.代码例子 三.CSS动画 1.注意 ...

  3. 蓝桥杯Web组备赛笔记5

    目录 一.vue 1.考察 2.引入式简单例子 二.生命周期 1.文档图示 2.常考模块介绍 三.组件传参方式 1.创建使用组件 2.父子传参 四.axios 1.简介 2.13届蓝桥真题(7)布局切 ...

  4. 蓝桥杯Web组备赛笔记4

    目录 一.es6新增特性 1.定义常量及其简单的使用 2.set()函数 3.构造器 4.构造函数 二.高阶函数 1.filter():过滤器 2.find() 三.13届蓝桥真题 (9) 1.解题思 ...

  5. 蓝桥杯Web组备赛笔记3

    目录 一.JQuery基础 1.详细的JQ介绍,小伙伴们可以参考小编的文章

  6. 2022.4.9第十三届蓝桥杯web组省赛个人题解

    2022第十三届蓝桥杯第一次开放了web组赛道,博主作为一名前端小白,参加了这次比赛.一共十个题目,目的均是实现特定的网页效果,考点包含三件套.jQuery和vue,这里简单的进行一下个人的题解记录. ...

  7. 第十二届蓝桥杯青少年组国赛C++中级组 第1题 -- 第3题(python3实现)

    12届蓝桥杯青少年组国赛C++中级组编程题 12届蓝桥杯青少年组国赛C++中级组编程题_lybc2019的博客-CSDN博客 蓝桥杯算法学习路线 | 全程制作过程公开 蓝桥杯算法学习路线 | 全程制作 ...

  8. 2018年第九届蓝桥杯 JavaB组省赛 刷题思路及答案

    前言 本人是二本院校大二的计算机系学生,已经报名了下一届的蓝桥杯省赛,整个寒假学习了很多算法知识,我是看<算法很美>这个课程学习算法的,一套学习下来确实受益匪浅,视频在b站上面都有. 此前 ...

  9. 2013第四届蓝桥杯Java组省赛题解析

    2013第四届蓝桥杯Java组省赛题解析 目录 第一题:高斯日记 第二题:马虎的算式 第三题:第39级台阶 第四题:黄金连分数 ​第五题:前缀判断 第六题:三部排序 ​第七题:错误票据 第八题:翻硬币 ...

最新文章

  1. 三招看穿ERP软件是否可行
  2. matlab识别图像,基于MATLAB神经网络图像识别的高识别率代码
  3. buildroot的使用简介【转】
  4. 三年前端,面试思考(二)
  5. ForkJoinPool分支合并框架计算加法
  6. 电脑小写字母怎么切换_笔记本键盘切换的操作流程
  7. 解决 ModuleNotFoundError: No module named ‘PySide2.QtUiTools‘
  8. 芝麻信用行业关注名单风险标签对照表SQL---福利大家!
  9. kuberbetes容器生命周期 - 容器探测(liveness/readiness probes)
  10. day03-搭建项目
  11. 首次适应算法 C语言实现
  12. Flask框架学习:蓝图的使用
  13. 通过阿里云或清华镜像站安装tensorflow2.0
  14. C++直接初始化和复制初始化
  15. NYOJ - 找点【贪心】
  16. 【操作系统】第二章--进程的描述与控制--笔记与理解(2)
  17. Linux基础, 基础命令, 基于公钥的免密登录
  18. 数据库横向扩展和纵向扩展
  19. Qtxlsx操作Excel之使用
  20. 惠普暗影精灵命令中心linux,暗影精灵2成功装上Sierra 12.5正式版

热门文章

  1. 计算机毕设选题推荐 SSM个人交友网站 网上交友平台 同城交友平台Java Vue MySQL数据库 远程调试 代码讲解
  2. ChiMerge 算法: 以鸢尾花数据集为例
  3. 人脸反欺诈数据集的预处理过程(含代码)
  4. 操作系统时间片轮转调度算法 进程 到达时间 服务时间 p1 p2 p3 p4
  5. 综合实验 电子记事本的设计与实现——Java
  6. 具备什么样的条件液晶屏被称为TFT彩色液晶显示
  7. 项目选题报告(团队)
  8. 13 罗马数字转整数
  9. C语言实现的 Kanade-Lucas-Tomasi Feature(KLT) Tracker
  10. PHP拓展 Imagick安装