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用来存储异步调用的数据

相关推荐
hweiyu001 天前
Node.js+Koa2+MySQL 打造前后端分离项目(视频教程)
数据库·mysql·node.js
小奶包他干奶奶1 天前
如何使用vscode和express开发node.js
前端·node.js
qyhua1 天前
从零部署自维护版 Uptime Kuma:Node.js + PM2 + Nginx 全链路实战指南
运维·nginx·node.js
one.dream1 天前
用webpack 插件实现 img 图片的懒加载
前端·webpack·node.js
San301 天前
AI 歌词生成器:使用 OpenAI 打造你的专属作词助手
javascript·人工智能·node.js
用户6600676685391 天前
从零构建 AI 歌词生成器:Node.js + OpenAI SDK + Git
node.js·openai
稍带温度的风1 天前
node 后端服务 PM2 相关命令
node.js·pm2·1024程序员节
疯狂踩坑人2 天前
【深入浅出Nodejs】异步非阻塞IO
后端·node.js
gongzemin2 天前
使用阿里云ECS部署Express
后端·node.js·express
爱宇阳2 天前
npm 常用标签与使用技巧新手教程
前端·npm·node.js