node.js
文章平均质量分 74
沧州刺史
Hello朋友你好!我是一名西安电子科技大学研一在校学生,目前主要在做web方向,别的方向也有尝试。
如果对博客内容有疑问,或者有想法,欢迎私信或评论,看到一定会回复、尽力为大家解决问题!
如果你对web感兴趣,也可以一起交流讨论,比如学习路线、项目经验、技术点等等。
同时我会不定期写一些学习心得、技术教程、项目教学等博客,希望能丰富大家的技术视野。
技术不易,我们,继续努力!
展开
-
npm install时报一堆错(大致错误范围在sass)
1. 重新编译node-sass二进制文件:`npm rebuild node-sass`2. 卸载node-sass: `npm uninstall node-sass`,安装sass:`npm install sass`。(用sass替换node-sass)3. 删除`node_modules`目录重新`npm install`4. 删除`node_modules`和`package-lock.json`重新`npm install`5. 查看你的`node-sass`版本是否对应你的`node原创 2023-01-14 12:23:15 · 4531 阅读 · 0 评论 -
使用koa(koa-bodyParser插件)报错:ctx.onerror is not a function
插件可以让你快捷获取到POST数据,不然按照传统模式,则需要手动监听流事件。去获取数据片段,然后拼接每个片段,最后转换为JSON格式。这不是koa引起的错误,而是一个插件引起的错误。但是有一个点需要注意!原创 2022-10-29 12:22:46 · 2303 阅读 · 1 评论 -
Node学习二十 —— 构建和使用HTTP中间件
简单介绍一下中间件,我从这里面摘抄的。我国企业从20世纪80年代开始就逐渐进行信息化建设,由于方法和体系的不成熟,以及企业业务和市场需求的不断变化,—个企业可能同时运行着多个不同的业务系统,这些系统可能基于不同的操作系统、不同的数据库、异构的网络环境。现在的问题是,如何把这些信息系统结合成一个有机地协同工作的整体,真正实现企业跨平台、分布式应用。中间件便是解决之道,它用自己的复杂换取了企业应用的简单,接下来我们来了解一下什么是中间件?原创 2022-09-30 16:11:05 · 771 阅读 · 0 评论 -
Node学习十九 —— 回调地狱、Async库控制异步同步
当异步操作的时候,通常都是通过回调函数来进行反馈。如果你需要进行一些IO操作,那么基本都需要指定一个在操作结束的时候调用的回调函数,如果涉及大量IO操作,要把这些回调管理好就很麻烦,也许会导致一些被称为“回调汤”或者“飞去来器效应”的模式。原创 2022-09-27 19:53:33 · 555 阅读 · 0 评论 -
Node学习十八 —— Node调试器和检查器
实际应用一般都不是一个小工程,所以需要把程序划分成多个小的模块。如果需要检查程序模块内部的运行情况,则可以用到几个工具。原创 2022-09-27 14:01:50 · 507 阅读 · 0 评论 -
Node学习十七 —— 调试模块(Node-Tap,assert/t断言)
为了减少上线到生产环境下,程序有某些BUG影响用户使用,必须测试所写的代码,可以使用人工手动检查,但是这样效率太低了,可能测试功能单一、简单的代码可行,但是一旦需要大量数据测试,那最好还是编写用来测试的代码让测试过程实现自动化。目的是创建覆盖全部代码的一些列测试,包括运行的主要情形和边缘情形。原创 2022-09-27 11:49:25 · 625 阅读 · 0 评论 -
Node学习十六 —— 使用HTTPS保证HTTP的安全性
HTTPS为标准HTTP协议增加了TLS的安全性,在Node中HTTPS被实现为一个有别于HTTP的独立模块,除了一些小差别,别的都很相似。HTTPS核心模块扩展了HTTP模块,并将tls模块作为传输机制。例如,伪类继承自伪类。首先需要创建私钥和自签名证书,这和上一篇中的做法相同本篇略有缩减,如有理解困难或细节疑问请配合前置文章学习。原创 2022-09-26 14:59:54 · 584 阅读 · 0 评论 -
Node学习十五 —— 使用TLS/SSL提高安全性
传输层安全(Transport Layer Security,TLS)和 安全套接字层(Secure Socket Layer,SSL)允许客户端/服务器应用程序以组织窃听和篡改的方式通过网络进行通信。他们会在传输层上对网络连接进行加密,这使得隐私和消息都能得到验证。TLS是基于Netscape公司开发的早期SSL规范,实际上,TLS 1.0 也被成为 SSL 3.1。原创 2022-09-25 22:04:43 · 877 阅读 · 0 评论 -
Node学习十四 —— 使用node创建HTTP请求
Node擅长处理I/O操作,所以它不仅合适提供HTTP服务,也适合使用这些服务。接下来你将学习使用http模块和第三方模块执行和控制http请求。在HTTP协议中,有两个重要的属性:URL和方法。最常见的是GET、POST方法,还有PUT等别的方法。原创 2022-09-25 14:40:47 · 4187 阅读 · 0 评论 -
Node学习十三 —— 用户数据报
使用用户数据报TCP是一个面相连接的协议,它能提供可靠有序的数据流。然而,用户数据报协议(User Datagram Protocol,UDP)是一种无连接的协议,不具备TCP的传输特性。当发送UFP数据包的时候,无法保证数据包都顺序到达,甚至无法保证它能够到达。虽然有这些缺点,但是它还是非常有用,例如在需要广播消息的时候,并不需要严格地传输保证,或者消息顺序,此外,UDP也可用于不知道网络节点地址的场合。1. 理解用户数据报与TCP一样,UDP也位于传输层,在IP层之上,它允许你向其他主机发送消息原创 2022-09-25 00:21:49 · 360 阅读 · 0 评论 -
Node学习十二 —— 创建TCP客户端
构建TCP客户端TCP协议位于IP协议的上一层,是引用最广泛的互联网传输协议之一,在其之上就是类似HTTP这样的应用层协议。TCP是一种面向连接的协议,即一个终端需要和另一个终端建立专门的连接。该连接为双向数据流,两个终端可以同时控制收或者发数据。原创 2022-09-23 18:00:45 · 1240 阅读 · 0 评论 -
Node学习十一 —— 创建HTTP服务器
HTTP是一个用来进行传送内容的应用程序的应用层协议,它将TCP用作传输协议,并且是万维网进行数据通信的基础。首选的应用程序部署方案之一就是在互联网上提供HTTP服务,用来响应HTTP客户端的请求,几乎常见的软件程序里面都会使用这一项技术。原创 2022-09-22 21:39:10 · 486 阅读 · 0 评论 -
Node学习十 —— TCP实战之聊天室
TCP服务器会在其生命周期内发射一些事件,即在被绑定到某个端口上时会发射“监听”事件,被关闭时会发射“关闭”事件,而出现错误时会发射“错误”事件。还可以监听“连接”事件,该事件会在新客户端连接时出现。连接事件会向你提交一个socket对象, socket对象既是可渎流又是可写流,可以用该对象来监听数据、发送数据、终止连接,甚至可以将连接数据传入另一个流中,反过来也可以将一个可读流传入连接。socket对象允许你使用socket.pause()和socket..resume()控制它的流程,还允许你对它的些原创 2022-09-22 14:35:51 · 271 阅读 · 0 评论 -
Node学习九 —— 创建TCP服务器
传输控制协议(Transmission Control Protocol,TCP)是Internet的基础协议之一,它位于网际协议(Internet Protocol,,P)之上,为应用层提供了一种传输机制。例如,HTTP工作在TCP之上,其他很多面向连接的应用(诸如RC、SMTP和MAP)也工作在TCP之上。Node以htp.Server伪类实现了HTTP服务器,改伪类继承自 .net Server中的TCP服务器伪类,这意味着本文所有内容也可以应用到Node HTTP服务器中去。原创 2022-09-21 22:33:35 · 916 阅读 · 0 评论 -
15812字教你从零入门node.js(基础篇)
node是每个js开发者都会使用,也是必会的工具,可能很多人都和我一样,平时都会用,但是没有系统去学习过他。这段时间,抽空从头开始学了学node基础,并把这段时间的学习作为node第一阶段,同时把第一阶段,node基础分为七个部分,共八篇,各位看官想分条细看,可以去我的主页找这八篇笔记。现在,我把这八篇笔记合八为一,综合成《15812字教你从零入门node.js(基础篇)》。原创 2022-09-20 23:46:33 · 1247 阅读 · 0 评论 -
Node学习八 —— 流--读写数据流
流,是Node中的一个抽象概念。细分可以分为两个:可读流和可写流。他们可以由一些Node对象实现(牢记流只是一个概念)。举几个流的例子:TCP套接字、文件读写。。。虽然之前也接触过,但本文以更正式的方式介绍。注意:流是由几个Node对象实现的抽象概念,创建或者获取流的方式取决于使用流的类型。例如,可以基于文件显式地创建一个可读流或者可写流。但是,服务器端的TCP套接字流只有在客户端连接时才能为你所用。除了可读流或可写流的特性外,一个对象还可以具有其他一些特殊的属性或行为。原创 2022-09-11 15:11:05 · 714 阅读 · 0 评论 -
Node学习七 —— 创建和控制外部进程
Node是被设计用来高效处理/O操作的,但正如你所见,某些类型的程序并不适用于这种模式。比如当用Node处理一个CPU密集型任务时可能会阻塞事件循环,所以应该将CPU密集任务分配给另一个进程去处理,释放事件循环,分担主进程的压力。Node中可以创建进程,并把这些进程当成当前启动他的进程的子进程。也许你不是很了解进程和线程,但这不是本文的重点,所以如果想要了解的更清楚,请查一查,简单了解一下。提一句,后面用到的process对象是Node中的一个全局对象。原创 2022-09-10 17:04:38 · 1101 阅读 · 0 评论 -
Node学习六 —— 文件操作(fs模块,打开关闭读写文件)
引入fs模块之后,可以利用其中的接口进文件操作-fs模块const fs = require('fs');引入fs模块之后,可以利用其中的接口进行文件操作。查询文件的统计信息可以使用 fs.stat函数查询,第一个参数为文件路径,第二个参数为查询完成之后的回调函数,回调函数接受一个参数,为查询的返回值。返回值有文件的基本信息,具体就不列了,看文档即可。该函数会将stats类的一个实例作为返回值传给回调,通过这个实例,我们可以调用以下函数:isFile() :如果是标准文件而行文件操作。原创 2022-09-10 03:47:24 · 1157 阅读 · 0 评论 -
Node学习五 —— 操作文件(path模块,路径处理)
查询和读写文件Node中有一组流API,可以像处理网络流一样处理文件。流API很方便,但要求只能以连续的方式处理文件。如果需要在指定位置进行读写,流API就行不通了,所以需要用到一些更底层都操作。本文主要内容:如何打开文件如何读取文件的指定部分如何写入文件如何关闭文件Node与文件有关的API很多与UNIX很像,使用文件描述符的方法就和UNIX中的一样。文件描述符句柄在Node中也是一个整数,代表进程文件描述符表的某个入口的索引。有三个特殊的文件描述符:1:标准输入文件(只读流,可以原创 2022-09-09 10:50:05 · 661 阅读 · 0 评论 -
Node学习四 —— 函数执行规划
函数执行本来首先应该介绍setTimeout和setInterval这两个函数的,但是网上的详细教学已经很多了,所以就不再赘述,简单提一下需要掌握的几个点:在延迟一定时间之后调用函数取消定时器使用process.nextTick将函数推迟到下一轮事件循环上面两个延迟函数是在时间纬度上,将代码推迟一段时间然后再执行。而process.nextTick是在内存纬度,等到别的事件都执行完了,再执行需要延迟的代码。Node的事件循环在一个处理事件的队列里面循环运行,事件循环每被执行一次就被称为一个T原创 2022-09-09 01:52:03 · 236 阅读 · 0 评论 -
Node学习三 —— 事件发生器
事件发生器在Node中很多对象都能发射事件,比如客户端连接的时候,Tcp服务器会发射connect事件等等。这些对象被称为事件发射器,而事件发生时就会调用对应的回调函数。这是典型的发布订阅模式。还可以创建自定义事件发生器,因为Node提供了一个伪类EventEmitter。标准回调模式在回调模式下,每个函数在执行完毕后可以调用另一个函数以使得程序能够继续运行下去。举个例子:var fs = require("fs");fs.readFile('./test',function(err,file原创 2022-09-08 01:20:47 · 439 阅读 · 0 评论 -
Node.js学习二 —— 缓冲区
利用缓冲区处理、编码、解码二进制数据## 创建缓冲区使用字符串创建:```jsvar buf = new Buffer('Hello World');```如果需要指定编码格式,则添加第二个参数如`base64`表明即可。可以被接受的编码格式(注意大小写下不同的写法):- `ascii——ASCII`:该编码格式仅适用于ASCI字符集。- `utf8——UTF-8`:这是一种变宽度的编码格式,可以表示Unicode字符集中的任意字符,它是网络上的首选编码格式。在你没有指定编码格原创 2022-09-06 14:11:04 · 310 阅读 · 0 评论 -
Node.js学习一 —— 模块化
加载模块 JS 并没有“脚本间贡献全局命名空间”这一特性。一旦JS代码被载入网页,就会添加进入全局命名空间。全局命名空间是被所有已载入的脚本所贡献的通用地址空间,这样不免会有一些安全问题、冲突以及一些难以跟踪和解决的一般性错误。 不过,Node为服务器端的JS制定了一些规范,并且实现了CommonJS模块标准。这样,每个模块都拥有一个上下文来将其他模块隔离开,这意味着没有全局污染(根本就没有全局作用域)。### 如何加载模块 Node中可以用文件路径也可以用名称来引用模块。如果不是核心原创 2022-09-05 15:59:59 · 405 阅读 · 0 评论