Node.js以及异步编程

什么是服务器?我们知道客户端通过访问服务器,然后服务器去操作数据库把我们想要的数据拿过来给客户端。比如服务器就是餐厅的服务员,数据库就是厨房,客户端就是我们的顾客。首先我们点菜,服务器告诉厨师做饭,然后把饭给我们。这样我们就大致知道了服务器是做什么的。就是一个线程的容器为我们提供服务。

Node.js是运行在服务器的js用来编写服务器。

这里是java编写服务器和nodejs的不同,nodejs的特点1.单线程2.异步3.非阻塞4.统一API .

I/O指的是input ouput 输入输出不会被阻塞,就是并行服务员一直接新订单。统一API是前后端都用js写。都遵循ECMAScript语法(流程控制语句 函数对象运算符一致)也保留了部分console.log调试语句。

1.Nvm 的安装以及命令

nvm是一个管理Node.js多版本的工具可以轻松切换不同项目所需的Node.js版本避免全局冲突。

这里一些简单的命令

2.怎么用node

1.直接在终端输入node

就可以直接写js代码了

2.在根目录下用node 文件名

或者用快捷键 fn+f5(mac) 这样就可以调试我们写的node.js代码了。

3.异步编程

首先理解同步和异步直接先插入一个概念,进程和线程。

进程:程序运行的环境(工厂的厂房计算机内存给代码留的内存空间)

线程(工人)线程是实际进行运算的东西在进程里面运算。

同步和异步

通常情况下我们的代码是一行行执行如果前面代码不执行后面的代码也不会执行。如果同步的代码出现阻塞的情况,一行代码慢会影响整个程序的运行。

为了解决同步的问题。node.js通过异步方式来解决。执行代码速度慢的代码不会影响其他代码。

比如这种代码,我们后面的输出都需要等sum函数执行完三秒后才可以运行。我们如果用异步去解决的话。

我们发现一个问题异步好像就拿不到result返回值了 ,因为我们同步输出了result这时候没有拿到result这就很难受了,我们怎么才能拿到值呢?我们可以用回调函数来解决。

我们这里用回调函数然后作为参数来获取我们a+b的值然后输出,如果我们希望加好几次呢?就需要去在回调函数里面拿到result之后再去拿当前的result作为参数再次调用sum函数。

就会出现这样代码的可读性差,可调试性差也是我们说的回调地狱。

现在我们知道我们用异步解决了所谓的同步代码会因为一行代码影响程序执行,但是异步的话我们就无法通过return设置返回值。虽然不会阻塞代码,但是需要回调函数的参数来返回结果。形成回调地狱。

为了解决这个问题,Promise横空出世 Promise用来存储异步调用的数据

相关推荐
HWL56795 小时前
输入框内容粘贴时   字符净化问题
前端·vue.js·后端·node.js
. . . . .1 天前
Node.js 的替代品Bun
node.js
一只月月鸟呀1 天前
AI使用 Node.js modbus-serial 搭建一个可交互的 Modbus TCP 主站与从站 Demo
网络协议·tcp/ip·node.js
学渣y1 天前
nvm下载node版本,npm -v查看版本报错
前端·npm·node.js
灰太狼大王灬2 天前
Node.js 本地服务部署、常驻及调用完整笔记
笔记·node.js
你的电影很有趣2 天前
lesson71:Node.js与npm基础全攻略:2025年最新特性与实战指南
前端·npm·node.js
闲蛋小超人笑嘻嘻2 天前
前端面试十四之webpack和vite有什么区别
前端·webpack·node.js
特立独行的猫a2 天前
JSNES游戏模拟器在 Node.js 环境下的测试使用及高清显示优化
游戏·node.js·nes·jsnes
huangql5202 天前
基于前端+Node.js 的 Markdown 笔记 PDF 导出系统完整实战
前端·笔记·node.js
谢尔登3 天前
【Nest】基本概念
javascript·node.js·express