蓝桥杯Web组备赛笔记7
目录
一、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端和手机端
![](/assets/blank.gif)
(2)更多介绍:参考文档
Source - HTML(超文本标记语言) | MDN
(3)服务端语言:Java
、PHP
、Python
、Node
、.net
等,Node使用JavaScript
语言,不用再学习一门语言
2、认识前后端交互
![](/assets/blank.gif)
图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相关推荐
- 蓝桥杯Web组备赛笔记6
目录 一.ElementUI 1.安装 2.简单使用 3.例子 4.其他内容的学习 二.echarts 1.简介 2.考点 3.安装 4.配置项:使用echarts的三步走 5.13届蓝桥真题(3)布 ...
- 蓝桥杯Web组备赛笔记1
目录 一.flex布局 1.详细的使用解释 2.简单例子 3.flex布局要认识两个轴 4.版心布局 5.13届蓝桥真题 (1,6) 二.grid布局 1.应用 2.代码例子 三.CSS动画 1.注意 ...
- 蓝桥杯Web组备赛笔记5
目录 一.vue 1.考察 2.引入式简单例子 二.生命周期 1.文档图示 2.常考模块介绍 三.组件传参方式 1.创建使用组件 2.父子传参 四.axios 1.简介 2.13届蓝桥真题(7)布局切 ...
- 蓝桥杯Web组备赛笔记4
目录 一.es6新增特性 1.定义常量及其简单的使用 2.set()函数 3.构造器 4.构造函数 二.高阶函数 1.filter():过滤器 2.find() 三.13届蓝桥真题 (9) 1.解题思 ...
- 蓝桥杯Web组备赛笔记3
目录 一.JQuery基础 1.详细的JQ介绍,小伙伴们可以参考小编的文章
- 2022.4.9第十三届蓝桥杯web组省赛个人题解
2022第十三届蓝桥杯第一次开放了web组赛道,博主作为一名前端小白,参加了这次比赛.一共十个题目,目的均是实现特定的网页效果,考点包含三件套.jQuery和vue,这里简单的进行一下个人的题解记录. ...
- 第十二届蓝桥杯青少年组国赛C++中级组 第1题 -- 第3题(python3实现)
12届蓝桥杯青少年组国赛C++中级组编程题 12届蓝桥杯青少年组国赛C++中级组编程题_lybc2019的博客-CSDN博客 蓝桥杯算法学习路线 | 全程制作过程公开 蓝桥杯算法学习路线 | 全程制作 ...
- 2018年第九届蓝桥杯 JavaB组省赛 刷题思路及答案
前言 本人是二本院校大二的计算机系学生,已经报名了下一届的蓝桥杯省赛,整个寒假学习了很多算法知识,我是看<算法很美>这个课程学习算法的,一套学习下来确实受益匪浅,视频在b站上面都有. 此前 ...
- 2013第四届蓝桥杯Java组省赛题解析
2013第四届蓝桥杯Java组省赛题解析 目录 第一题:高斯日记 第二题:马虎的算式 第三题:第39级台阶 第四题:黄金连分数 第五题:前缀判断 第六题:三部排序 第七题:错误票据 第八题:翻硬币 ...
最新文章
- 三招看穿ERP软件是否可行
- matlab识别图像,基于MATLAB神经网络图像识别的高识别率代码
- buildroot的使用简介【转】
- 三年前端,面试思考(二)
- ForkJoinPool分支合并框架计算加法
- 电脑小写字母怎么切换_笔记本键盘切换的操作流程
- 解决 ModuleNotFoundError: No module named ‘PySide2.QtUiTools‘
- 芝麻信用行业关注名单风险标签对照表SQL---福利大家!
- kuberbetes容器生命周期 - 容器探测(liveness/readiness probes)
- day03-搭建项目
- 首次适应算法 C语言实现
- Flask框架学习:蓝图的使用
- 通过阿里云或清华镜像站安装tensorflow2.0
- C++直接初始化和复制初始化
- NYOJ - 找点【贪心】
- 【操作系统】第二章--进程的描述与控制--笔记与理解(2)
- Linux基础, 基础命令, 基于公钥的免密登录
- 数据库横向扩展和纵向扩展
- Qtxlsx操作Excel之使用
- 惠普暗影精灵命令中心linux,暗影精灵2成功装上Sierra 12.5正式版