node.js初见

node.js初见

官网上的定义:
Node.js®是基于 Chrome 的 V8 JavaScript 引擎构建的 JavaScript 运行时环境。
Node.js 使用事件驱动的非阻塞 I/O模型,轻量且高效。
Node.js 的包生态系统 npm 是世界上最大的开源库生态系统。

1:如何理解javascript的运行环境

在这里插入图片描述
JavaScript 原来是只能在浏览器中运行的,当把它扩展成为可以在你的计算机上作为独立的程序运行时,Node.js 就出现了。

2:如何理解阻塞喝非阻塞

在这里插入图片描述

阻塞I/O

在阻塞方法中,在 user1 的数据被输出到屏幕之前,不会启动 user2 的数据请求。
如果这是一个Web服务器,我们必须为每个新用户启动一个新线程。但 JavaScript 是单线程的(实际上不是真的,但它有一个单线程的事件循环,我们稍后会讨论)。所以这会使 JavaScript 不太适合多线程任务。
就是非阻塞的用武之地。

非阻塞

另一方面,如果用非阻塞请求,可以在为 user2 发起数据请求时,无需先等待对 user1 请求的响应。你可以并行启动这两个请求。
这种非阻塞 I/O 消除了对多线程的需要,因为服务器可以同时处理多个请求。

3:javascript事件循环

在这里插入图片描述

  1. 将 main() 送入调用栈。
  2. 将 console.log() 送入调用栈。然后立即运行并弹出。
  3. 将 setTimeout(2000) 送入栈。 setTimeout(2000)是一个 Node
    API。在调用它时,先注册事件回调。事件将等待 2000 毫秒,然后回调这个函数。
  4. 在 API 中注册后,setTimeout(2000) 从调用堆栈中弹出。
  5. 现在第二个 setTimeout(0) 以相同的方式注册。我们现在有两个 Node API 等待执行。
  6. 等待 0 秒后,setTimeout(0) 被移动到回调队列,同样的事情发生在 setTimeout(2000)。
  7. 在回调队列中,函数等待调用栈为空,因为每个语句都执行一次。这由事件循环处理。
  8. 最后一个 console.log() 运行,并且 main() 从调用栈中弹出。
  9. 如果事件循环检测到到调用堆栈为空且回调队列不为空。它将回调(以先进先出顺序)移动到调用栈并执行。

4:npm

这些是由令人敬畏的社区所构建的库,它能解决你的大多数的常规问题。 npm(Node package manager))中有很多可以用在你的程序中包,可以使你的开发更快更有效。

5:事件

事件指的是我们可以对在程序中发生的事情作出回应。Node 中有两种类型的事件。

  • 事件指的是我们可以对在程序中发生的事情作出回应。Node 中有两种类型的事件。
  • 自定义事件:JavaScript 核心。

6:最后helloworld"

创建文件 app.js 并将以下内容添加到其中。

console.log("hello world!!!!");

打开终端,将目录切换到保存文件的文件夹,然后运行 node app.js。
就这么简单,你在 Node.js 中写的 “Hello World” 跑起来了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值