Node.js学习小结

这篇博客总结了Node.js的学习,强调了计算机网络基础知识的重要性,如HTML、CSS、JavaScript和TCP/IP协议。博主分享了Node.js的核心特性,如异步事件驱动,详细解释了回调函数和事件循环的概念,并介绍了Node.js的Stream和常用Web模块,如Express框架。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Node.js学习小结

学习node.js,需要一些计算机网络预备知识:
1.HTML、CSS、JavaScript
2.TCP/IP、HTTP协议、W3C
大概是以上这些,在学习的过程中有不会的可以随时去查资料。
学习网址:菜鸟教程
推荐一个Node.js学习网站:狼叔的GitHub

  1. Node.js简介
    简单的说,Node.js 就是运行在服务端的、异步事件驱动的、基于谷歌Chrome V8 引擎的JavaScript。
  2. 安装Node.js
    这里就不在赘述了,有兴趣的朋友可以去“菜鸟教程”的网站上看一下,里面教程很详细。接下来我重点说下我认为Node.js里比较重要的,学起来感触比较深的一些内容。
  3. Node.js 回调函数

Node.js 异步编程的直接体现就是回调。

异步是啥?
来源于百度百科:计算机多线程的异步处理。与同步处理相对,异步处理不用阻塞当前线程来等待处理完成,而是允许后续操作,直至其它线程将处理完成,并回调通知此线程。

简单的说,
同步:同步就是你要做的事你列了一个清单,按照清单上的顺序一个一个执行
异步:就是可以同时干好几件事(因为有好多个线程,可以同时处理)

异步编程依托于回调来实现,但不能说使用了回调后程序就异步化了。
回调函数在完成任务后就会被调用,Node 使用了大量的回调函数,Node 所有 API 都支持回调函数。
例如,我们可以一边读取文件,一边执行其他命令,在文件读取完成后,我们将文件内容作为回调函数的参数返回。这样在执行代码时就没有阻塞或等待文件 I/O 操作。这就大大提高了 Node.js 的性能,可以处理大量的并发请求。
回调函数一般作为函数的最后一个参数出现:

function foo1(name, age, callback) { }
function foo2(value, callback1, callback2) { }

再简单的说,回调函数回调函数,就是等其他函数执行完了,上面的foo1、foo2(一般是readFile等消耗时间较大的函数)才执行(所以才叫异步嘛,效率更高),才调用回调函数执行。

  1. Node.js 事件循环、EventEmitter
// 引入 events 模块
var events = require('events');
// 创建 eventEmitter 对象
var eventEmitter = new events.EventEmitter();


// 创建事件处理程序
var connectHandler = function connected() {
   console.log('连接成功。');
  
   // 触发 data_received 事件 
   eventEmitter.emit('data_received');
}
 
// 绑定 connection 事件处理程序
eventEmitter.on('connection', connectHandler);
 
// 使用匿名函数绑定 data_received 事件
eventEmitter.on('data_received', function(){
   console.log('数据接收成功。');
});
 
// 触发 connection 事件 
eventEmitter.emit('connection');
 
console.log("程序执行完毕。");

这里的关键点在于两个,一个绑定事件on、一个发射事件emit。理解了这两个,就算基本理解了Node.js里的事件。

  1. Node.js流(Stream)

Stream 是一个抽象接口,Node 中有很多对象实现了这个接口。
Node.js,Stream 有四种流类型:

Readable - 可读操作。

Writable - 可写操作。

Duplex - 可读可写操作.

Transform - 操作被写入数据,然后读出结果。

所有的 Stream 对象都是 EventEmitter 的实例。常用的事件有:

data - 当有数据可读时触发。

end - 没有更多的数据可读时触发。

error - 在接收和写入过程中发生错误时触发。

finish - 所有数据已被写入到底层系统时触发。
  1. Node.js函数

Node.js 中函数的使用与 JavaScript 类似,举例来说,你可以这样做:

function say(word) {
  console.log(word);
}

function execute(someFunction, value) {
  someFunction(value);
}

execute(say, "Hello");
  1. GET/POST请求
  • GET请求直接被嵌入在完整的URL路径中,包括了?后面的部分,因此你可以手动解析后面的内容作为GET请求的参数。

  • POST 请求的内容全部的都在请求体中。恶意的POST请求会大大消耗服务器的资源,所以 node.js 默认是不会解析请求体的,当你需要的时候,需要手动解析请求体。

  1. Web模块
  2. Express 框架

以上的这些内容几乎都是参考菜鸟教程(www.runoob.com)的 ,博主目前的水平有限,就先写到这边了,想了解更详细的内容的小伙伴可以进一步访问网站学习哦。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值