
Node.js
文章平均质量分 78
nodejs
_洋
一起学习吧
展开
-
mocha——单元测试
是JavaScript的一种单元测试框架,既可以在浏览器环境下运行,也可以在Node.js环境下运行。使用mocha,我们就只需要专注于编写单元测试本身,然后,让mocha去自动运行所有的测试,并给出测试结果。1.既可以测试简单的avaScript函数,又可以测试异步代码,因为异步是JavaScript的特性之一 ;2.可以自动运行所有测试,也可以只运行特定的测试;3.可以支持before. after、 beforeEach和afterEach来编写初始化代码。测试代码:sum.js直接测试t原创 2022-07-12 14:29:30 · 1770 阅读 · 0 评论 -
Socket编程
http请求:客户端发送请求,服务端才会响应请求。web Socket请求WebSocket并不是全新的协议,而是利用了HTTP协议来建立连接。webSocket的应用场景:● 弹幕● 媒体聊天● 协同编辑● 基于位置的应用● 体育实况更新● 股票基金报价实时更新WebSocket连接必须由浏览器发起,因为请求协议是一个标准的HTTP请求,格式如下:该请求和普通的HTTP请求有几点不同:随后,服务器如果接受该请求,就会返回如下响应:该响应代码101表示本次连接的HTTP协议即将被更改原创 2022-07-11 17:00:10 · 1769 阅读 · 0 评论 -
MySql关系型数据库——node
关系型和非关系型数据库的主要差异是数据存储的方式。优点:1、易于维护:都是使用表结构,格式-致;2、使用方便: SQL语言通用,可用于复杂查询;3、复杂操作:支持SQL,可用于一个表以及多个表之间非常复杂的查询。缺点:1、读写性能比较差,尤其是海量数据的高效率读写;2、固定的表结构,灵活度稍欠;3、高并发读写需求,传统关系型数据库来说,硬盘I/O是-个很大的瓶颈。更新:删除:查询查找名字中包含a的(%表示一个或多个字符)排序查询(从小到大)排序查询(从大到小原创 2022-07-11 15:01:54 · 278 阅读 · 0 评论 -
koa框架
Koa采用洋葱模型通常都会说Koa是洋葱模型,这重点在于中间件的设计。但是按照上面的分析,会发现Express也是类似的,不同的是Express中间件机制使用了Callback 实现,这样如果出现异步则可能会使你在执行顺序上感到困惑,因此如果我们想做接口耗时统计、错误处理Koa的这种中间件模式处理起来更方便些。最后一点响应机制也很重要,Koa不是立即响应,是整个中间件处理完成在最外层进行了响应,而Express则是立即响应。Koa更轻量koa不提供内置的中间件;koa不提供路由,而是把路由这个库分离原创 2022-07-11 10:48:22 · 8110 阅读 · 2 评论 -
APIDOC- API文档生成工具——node
apidoc是一个简单的RESTful API文档生成工具,它从代码注释 中提取特定格式的内容生成文档。支持诸如GO、Java、C++、Rust 等大部分开发语言。1.跨平台,linux. windows、 macOS等都支持;2.支持语言广泛,即使是不支持,也很方便扩展;3.支持多个不同语言的多个项目生成一份文档;4.输出模板可自定义;5.根据文档生成mock数据;eg:完成的注释:生成文档命令:eg:执行命令生成的文档:在浏览器打开index.html就可以查看生成的文档。原创 2022-07-09 20:20:57 · 7253 阅读 · 0 评论 -
文件上传——node(express框架)
上传文件需要修改form的enctype属性为:,有一个问题,后端不能直接解析multipart/form-data类型的文件,这时候就需要使用中间件 接收文件,进行存储即:文件以二进制形式进行存储读取文件将文件放在数据库中后端可以通过获取文件addUserUserType添加用户:数据库:如果用户没有选择图片要选择默认图片图片回显后端从数据库获取avatar前端显示:效果:代码获取:前后后端分离,axios上传axios请求使用获取文件对象,原创 2022-07-09 19:03:58 · 395 阅读 · 0 评论 -
登录鉴权——node(express框架)
当用户想要访问主界面是,必须要判断用户是否登录,如果用户已经登陆就返回主界面,如果用户未登录就返回登录界面。不能说无论用户是否登录都可以通过修改请求路径直接跳转到主页面,这显然是错误的。解决该问题就是需要登录鉴权。验证用户的身份我们一般有两种方式,一种是采用cookie和Session ,另一种是采用JWT(token)方法。登陆页面,主页面,用户登陆后可以跳转到主页面,现在还没有进行登录鉴权,所以用户直接访问请求地址也可以跳转到主页面。项目是通过express生成的框架.项目目录:controll原创 2022-07-09 12:44:42 · 1502 阅读 · 0 评论 -
node的接口规范与业务分层
服务器上每一种资源, 比如一个文件,一张图片,一部电影,都有对应的url地址,如果我们的客户端需要对服务器上的这个资源进行操作,就需要通过http协议执行相应的动作来操作它,比如进行获取,更新,删除。一般情况下我们直接使用Get、Post来发送和接受请求就可以了,但是为了更规范的编码,我们可以按章来编写请求。RESTful架构内容:简单来说就是url地址中只包含表示资源,使用http动词表示(get、post、put、delete)进行操作资源有四种请求方式,不同的请求方式代表着不同的语义eg:前端:i原创 2022-07-08 14:18:40 · 415 阅读 · 0 评论 -
MongoDB
数据库有两种关系型数据库和非关系型数据库(1) sq|语句增删改查操作(2) 保持事务的-致性事物机制(回滚)常见的关系型数据库有:mysql,sqlserver,db2,oracle(1) no sql:not only sql;(2) 轻量,高效自由。常见的非关系型数据库有:mongodb ,Hbase,Redis这里使用它免安装版本:https://link.youkuaiyun.com/?target=https%3A%2F%2Ffastdl.mongodb.org%2Fwin32%2Fmongodb-原创 2022-07-08 11:35:26 · 187 阅读 · 0 评论 -
EXPRESS框架
express是一款基于Node.js平台,快速、开放、极简的web开发框架。官网:https://www.expressjs.com.cn/express是node的第三方框架初始化:安装: 使用的时候引入即可:之前都是用向前端页面写数据,但是比较麻烦,一般情况下我们还需定义,还需要注意返回的书html片段,页面还是json数据,比较麻烦。EXPRESS框架直接将这些内容封装成,我们可以直接将数据进行返回,比较方便。处理路由固定路由表示可以匹配 和 路径是一个占位符表原创 2022-07-07 16:54:04 · 3092 阅读 · 0 评论 -
node内置模块——路由、path模块、mime模块
利用switch,case语句实现:server.js:写成模块router.jsserver.js另一种写法-更常用将route写成对象模式router.js:server.js:进一步改进router.jsserver.jsindex.js(入口)api文件的引入前面所写的都返回值都是页面,前端发过来的请求也有可能是请求数据的,当然也可以直接放在route中,但是我们一般将请求数据的单独放在一个api.js文件中,专门用来处理请求数据的接口。api.jsrouter.jss原创 2022-07-06 16:58:41 · 460 阅读 · 0 评论 -
node内置模块——crypoty模块
crypto模块的目的是为了提供通用的加密和哈希算法。用纯JavaScript代码实现这些功能不是不可能,但速度会非常慢。Nodejs用C/C++实现这些算法后,通过cypto这 个模块暴露为JavaScript接口,这样用起来方便,运行速度也快。如:是一种常用的哈希算法,用于给任意数据一个"签名”。 这个签名通常用一个十 六进制的字符串表示。MD5是不可逆的,可以用于简单的密码加密,可以用于文件完整性的校验。输出:md5加密不安全的原因是,MD5加密方法是一样的,所以可以通过‘彩虹表’对照出原创 2022-07-06 10:12:40 · 382 阅读 · 0 评论 -
node内置模块——zlib模块
浏览器解析页面的大致流程如下:如果文件过大从webserver到浏览器的传输时间就会很长,所以我们可以先将文件压缩成文件再进行传输。压缩成gzip文件方法就是包含在zlib模块中。在服务器上进行文件压缩之后传回页面上不使用gzip压缩之前文件大小是:使用gzip压缩之后文件大小是:...原创 2022-07-06 09:23:07 · 463 阅读 · 0 评论 -
node内置模块——stream流模块
stream可写流边读边写—管道通关管道连接可读流和可写流一般用于大文件的复制。原创 2022-07-06 08:28:07 · 189 阅读 · 0 评论 -
nodemon
文章目录nodemon简介安装nodemon使用nodemon启动服务器nodemon简介nodemon是一个工具帮助我们开发node.js应用。nodemon可以监测文件变化,一旦文件发生了变化就会重新启动服务。安装nodemon注意:此工具的安装是基于nodejs的。安装命令:npm install -g nodemon使用nodemon启动服务器格式: npx nodemon server.jseg:当服务器的内容发生改变会自动重启:......原创 2022-05-13 16:29:52 · 875 阅读 · 1 评论 -
解决端口占用问题
再启动服务器的时候,可能会因为端口已经被占用而启动不起来。三条终端命令解决eg:原创 2022-06-07 22:22:15 · 155 阅读 · 0 评论 -
node内置模块——event模块
event.emit 触发 event.on中的函数运行运行输出:event解决异步问题异步问题:代码中:传递的参数是回调函数,等获取到数据之后才进行执行,这就是异步。event的订阅发布模式解决异步:原创 2022-06-07 12:25:07 · 321 阅读 · 1 评论 -
node内置模块——http模块:get、post、爬虫(正向代理)
从前端向服务器请求数据会有很多跨域显示,而别人的服务器我们不进行修改,不能说让人家返回jsonp或者打开cors访问权限,所以我们可以使用node来获取数据(因为服务器之间是没有跨域访问的限制的),然后通过node将获取到的数据传递给浏览器。eg:获取猫眼网站的数据get.htmlget.js网页输出:小问题:httpget(res)直接将res对象传递过去,不太好不利于解耦。所以做如下改进:将参数写成回调函数,传递过去。即:post请求post请求比get请求更安全post.jspos原创 2022-06-07 11:48:52 · 1533 阅读 · 0 评论 -
node内置模块——Http模块:jsonp模块、cors模块(解决跨域请求)
我们知道jsonp是一个允许跨域访问的东西。jsonp的实现原理同样node中使用jsonp也遵守上卖弄的规则:后端返回值是jsonp.htmljsonp.js先启动jsonp.js再打开页面输出:前面的写法,后端会使用到前端定义的函数,纳闷一旦前端的函数名进行了修改后端就会访问不到,从而出错。所以我们后端一般动态的获取前端的函数名进行调用,动态调用的话如何获取函数名呢?就是通过请求路径后面连接参数进行传递,后端再使用进行接收。即:jsonp.htmljsonp.jscors——解决跨域请求原创 2022-06-06 20:31:40 · 754 阅读 · 0 评论 -
node内置模块——Http模块、url模块、querystring小模块、escape/unescape
创建服务器回调函数一般传递两个参数:监听端口号的内容,即监听对应浏览器页面的内容,行为,监听到了就执行回调函数中的内容另一种写法:将创建和处理内容分开写res 属性——返回结果res返回渲染的内容注意 : 传递的参数必须是。不能直接传递一个数据,如数组。直接传递数组,前端不能进行解析,但是前端可以解析传递的。eg:01.server.js终端启动浏览器输出::代表返回的状态码。eg:200代表成功,404代表失败。可以设置输入的编码属性。如果要输入中文要将编码格式设置为eg:示例原创 2022-06-06 17:54:52 · 1052 阅读 · 0 评论 -
node的两种模块化规范
两种模块化的关系的:模块化规范是nodejs最开始使用的模块化规范,但是由于模块化规范的盛行使得nodejs不得不使用模块化规范。node默认使用的是CommonJS模块化规范,可以通过package.json配置文件的属性进行修改。有两个取值和,默认使用的是。module代表ES6规范commonjs代表CommonJS规范eg:模块化规范和模块化规范示例以暴露和导入文件为例使用的是 exports、module.exportsh和require使用的是 export、export def原创 2022-06-02 09:55:54 · 896 阅读 · 0 评论 -
node内置模块——fs文件系统模块
文章目录文件系统的定义文件系统的重要作用fs模块同步和异步调用文件的写入文件的同步和异步写入打开文件向文件写内容保存并关闭简单文件写入文件进写入的特点文件的打开状态流式文件写入文件的读取同步文件读取异步文件读取简单文件读取流式文件读取流式文件实现文件的读取和写入传统写法简单写法fs的其他操作文件系统的定义文件系统:文件系统简单来说就是通过Node来操作系统中的文件 。文件系统的重要作用在Node中,与文件系统的交互是非常重要的,服务器的本质就将本地的文件发送给远程的客户端。fs模块Node通过f原创 2022-05-28 09:05:52 · 2469 阅读 · 0 评论 -
node内置模块——Buffer模块(缓冲区)
文章目录Buffer(缓冲区)创建Buffer利用字符串创建buffer:Buffer.from使用Buffer方法创建buffer:Buffer.alloc()Buffer.allocUnsafe (size)Buffer元素的操作Buffer的特点buffer作用以字符串形式输出buffer中的数据Buffer(缓冲区)Buffer的结构和数组很像,操作的方法也和数组类似数组中不能存储二进制的文件,而buffer就是专门用来存储二进制数据使用buffer不需要引入模块,直接使用即可在buff原创 2022-05-27 23:32:27 · 1862 阅读 · 0 评论 -
node基础——包简介、npm、镜像服务器、yarn
文章目录CommonJS的包规范包结构包描述文件npmnpm的安装npm的命令CommonJS的包规范CommonJS的包规范允许我们将一组相关的模块组合到一起,形成一组完整的工具。CommonJS的包规范由包结构和包描述文件两个部分组成。包结构——用于组织包中的各种文件包描述文件——抽述包的相关信息,以供外部读取分析包结构包实际上就是一个压缩文件,解压以后还原为目录。符合规范的目录,应该包含如下文件∶package.json:描述文件(必须有)包的说明书,介绍包的名字、作用、内容b原创 2022-05-27 19:32:17 · 676 阅读 · 0 评论 -
Node.js基础——模块
文章目录在Vscode上使用node.js运行js代码法一:终端运行法二:右键Run CodeVsode设置node代码提示CommonJS规范——模块JS标准的缺陷CommonJS规范require使用require引入变量路径的两种表示方式globaljs文件是运行在函数中的exports和module.exports的区别代码演示原理在Vscode上使用node.js运行js代码法一:终端运行打开终端在终端输入:node 文件路径\文件名法二:右键Run Code即可运行代码,得到结原创 2022-05-27 14:11:21 · 1943 阅读 · 0 评论 -
Node.js简介
文章目录Node.js简介基本含义和产生原因nodejs特点nodejs的用途node.js的基本使用Node.js简介基本含义和产生原因Node.js是一个能够在服务器端运行JavaScript的开放源代码、跨平合JavaScript运行环境。node.js把js的战场从浏览器转移到服务器,可以进行更多的操作。用户请求和响应的过程:Node.js的产生原因要追溯到服务器的阻塞问题:传统服务器每次产生一个请求,就对应着一个线程。那么就有一个问题:请求的速度由用户决定,响应的速度也可以通过提原创 2022-05-27 09:44:59 · 43857 阅读 · 0 评论 -
命令行窗口
文章目录💦命令行窗口的打开方式💦命令窗口:💦命令行窗口的打开方式win+r 输入cmd原创 2022-05-26 16:15:37 · 6766 阅读 · 0 评论