【1】认识Nodejs-Nodejs开发入门

在这里插入图片描述

Nodejs产生的背景

了解JavaScript

1995年,JavaScript 出现,最初用于增强网页的交互性。

我们知道,传统JavaScript依赖html语言,而html语言被浏览器渲染为网页上的元素节点,在这个前提下,html的代码必定是要被传递给客户端也就是浏览器。同样,JavaScript代码也会随之一起在客户端运行,这也体现了JavaScript的语言特性,它是一门脚本语言,依赖宿主环境(也就是浏览器)。

这就造成了一个安全性问题,如果一个网页通过JavaScript能够随意操作我们的计算机,那我们的网络将毫无安全性可言。因此,JavaScript最初并没有开发操作系统的能力,这里“开发操作系统的能力”并不是说开发一个操作系统,而是指的直接与硬件交互、管理硬件资源、实现操作系统核心功能的能力。

V8引擎

V8 引擎由 Google 开发,最初用于 Chrome 浏览器,目的是提高 JavaScript 的执行效率。

V8 引擎通过即时编译(JIT)技术,将 JavaScript 代码直接编译为机器码,从而显著提升了执行速度。

Nodejs诞生

2009 年,Ryan Dahl 基于 V8 引擎创建了 Node.js。我们猜测,这个叫Ryan Dahl的开发者可能跟我们一样只会JavaScript,但是他又想开发自己的服务端。

实际上,Ryan Dahl 的目标是让 JavaScript 能够在服务器端运行,从而摆脱浏览器环境的限制。他将 V8 引擎从 Chrome 浏览器中提取出来,并将其与事件驱动和非阻塞 I/O 模型结合,创建了 Node.js。

  • V8 引擎:负责执行JavaScript代码。
  • libuv:一个跨平台的异步I/O库,提供事件循环和非阻塞I/O支持。
  • 其他组件:包括HTTP 服务器文件系统模块等,共同构成了Node.js的运行时环境。

这些模块组成了Nodejs的核心架构。

Node.js的出现使得JavaScript成为一种全栈开发语言,开发者可以使用同一门语言编写前端和后端代码。

同时推动了npm(Node Package Manager)的发展,形成了庞大的开源生态系统。

Nodejs的功能

npm包管理

NPM(Node Package Manager)是全球最大的开源包生态系统,提供超过 100 万个模块。

我们可以通过npm install轻松安装第三方库,如 Express、Socket.io、MongoDB 等。

文件系统

Node.js 提供了fs模块,用于与操作系统文件系统交互,支持同步和异步操作。文件系统解决了浏览器上JavaScript无法操作文件的缺点。

模块化

Node.js 采用CommonJS模块规范,通过requiremodule.exports实现模块的加载和导出。

通过模块化我们可以将功能封装为模块,便于维护和扩展。

每个模块有独立的作用域,避免全局变量污染,模块在第一次加载后会被缓存,避免重复加载。

网络编程

Node.js 提供了强大的网络编程能力,支持 TCP、UDP、HTTP 等协议。

我们可以通过http模块创建Web 服务器,处理 HTTP 请求和响应,也可以通过第三方库(如 ws)实现实时双向通信。

我们在开发Vue项目时使用的脚手架就是基于Nodejs的网络编程能力,让代码直接运行在服务器上。

路径系统

Node.js 提供了path 模块,用于处理和转换文件路径。

通过路径系统我们可以更加封闭地解析或者拼接路径,无须考虑不同操作系统下的路径格式。

异步机制

Node.js 的异步机制基于事件驱动和非阻塞 I/O,通过回调函数、Promise 和 async/await 实现。

Node.js 使用事件循环(Event Loop)处理异步操作,避免阻塞主线程。

基于此异步机制,Nodejs可以同时处理大量 I/O 操作(如文件读写、网络请求)。

参考文档

Nodejs官网
npm包仓库
npm官方文档

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小鱼计算机

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值