Node.js学习笔记(1) - Node.js简介

时间:2023-01-23 23:06:28

近期在看一些Node.js的知识,看完后觉得,一些前面的东西忘记了,于是整理一下,方便自己查阅,也希望对学习Node.js的朋友有些帮助;

当然以下只是我个人的观点和理解,不喜勿喷,也望大神指教。

一、Node.js是什么

关于这个问题,刚看到它的时候,可能觉得和javascript有关系,没错,确实有关系;但是,首先Node.js不是一门语言,与php python perl ruby的

“既是语言又是平台”不同;Node.js也不是一个javascript框架或者javascript类库,不同于Jquery ExtJS;Node.js是一个可以让javascript运行在

服务器端的平台;

二、Node.js特点

Node.js具有以下特点:

①是一个javascript运行环境或者平台

②依赖于Chrome V8引擎进行代码解释

③基于事件驱动

④异步式I/O(非阻塞I/O)

⑤单进程、单线程

⑥轻量、可伸缩,适用于实时数据交互应用

通过以上的特点,我们可以总结一句话:

Node.js是用异步式I/O和事件驱动,依赖于Chrome的V8引擎进行代码解释的javascript运行环境;

Node.js最大的特点就是异步式I/O和事件驱动,对于高并发的解决方法,Node.js摒弃了传统的多线程模型,

使用的是单线程模型,对所有的I/O请求都采用异步式请求的方式;

这里简单介绍下,异步式I/O和事件驱动:

异步式I/O,又叫非阻塞I/O,

在阻塞状态下,当线程遇到I/O操作时,会等待I/O操作的完成,从而造成阻塞,而一个线程只能处理一项任务,要想提供吞吐量必须通过多线程;

而非阻塞状态下,不会等待I/O操作的结果返回,继续执行下一条语句,当结果返回时,I/O以事件的方式通知;

Node.js的异步式I/O由回调函数完成,事件的回调函数在遇到I/O请求并且当I/O操作完成时,会发送一个事件

到事件队列,而Node.js的事件循环机制会检查队列中有没有未处理的事件,直到程序结束,所以可以说,

Node.js程序由事件循环开始,到事件循环结束。

三、Node.js的用途

Node.js适合应用在高并发、I/O密集、少量业务逻辑的场景

不适合的场景:

1.计算密集型应用

2.单用户多任务的程序

3.逻辑十分复杂的事务

4.unicode与国际化

Node.js学习笔记(1) - Node.js简介的更多相关文章

  1. WebGL three.js学习笔记 创建three.js代码的基本框架

    WebGL学习----Three.js学习笔记(1) webgl介绍 WebGL是一种3D绘图协议,它把JavaScript和OpenGL ES 2.0结合在一起,通过增加OpenGL ES 2.0的 ...

  2. Node.js学习笔记(2) - Node.js安装及入门hello world

    今天来简单的记录一下Node.js的安装配置以及简单的入门 一.Node.js的安装 1.windows下的安装 windows下的安装很简单,只需要去官网http://nodejs.org中,找到w ...

  3. Node.js学习笔记(八) --- Node.js的路由模块封装

    1 .模块化的方式封装 整理中… 2 .封装仿照 express 的路由整理中…

  4. Node.js学习笔记(七) --- Node.js的静态文件托管、路 由、EJS 模板引擎、GET 、POST

    1 . Nodejs 静态文件托管静态 web 服务器封装 2 . 路由 官方解释:  路由(Routing)是由一个 URI(或者叫路径)和一个特定的 HTTP 方法(GET.POST 等)组成的, ...

  5. JS学习笔记(模态框JS传参)

    博主最近基于django框架的平台第一版差不多完成了 今天整理下开发过程中遇到的前端知识 基于前端bootstrap框架模态框传参问题 上前端html代码: <div class="m ...

  6. 2019-4-29 js学习笔记

    js学习笔记一:js数据类型   1:基本数据类型       number类型(整数,小数)      String类型          boolean类型        NaN类型其实是一个nu ...

  7. 系列文章--Node&period;js学习笔记系列

    Node.js学习笔记系列总索引 Nodejs学习笔记(一)--- 简介及安装Node.js开发环境 Nodejs学习笔记(二)--- 事件模块 Nodejs学习笔记(三)--- 模块 Nodejs学 ...

  8. 一点感悟:《Node&period;js学习笔记》star数突破1000&plus;

    写作背景 笔者前年开始撰写的<Node.js学习笔记> github star 数突破了1000,算是个里程碑吧. 从第一次提交(2016.11.03)到现在,1年半过去了.突然有些感慨, ...

  9. Node&period;js学习笔记(3):NPM简明教程

    Node.js学习笔记(3):NPM简明教程 NPM常用操作 更新NPM版本 npm install npm -g -g,表示全局安装.我们可以指定更新版本,只需要在后面填上@版本号即可,也可以输入@ ...

随机推荐

  1. AngularJS之初级Route【一】(六)

    前言 这一节我们来讲讲AngularJS中的路由以及利用AngularJS在WebAPi中进行CRUD.下面我们一起来看看. 话题 当我们需要进行路由映射时即用到$route服务,在AngularJS ...

  2. 机器学习中的算法——决策树模型组合之随机森林与GBDT

    前言: 决策树这种算法有着很多良好的特性,比如说训练时间复杂度较低,预测的过程比较快速,模型容易展示(容易将得到的决策树做成图片展示出来)等.但是同时,单决策树又有一些不好的地方,比如说容易over- ...

  3. Unity小知识

    这些是我在开发时遇到的一些问题: 2D的碰撞器和3D的碰撞器是没有任何物理反应的,必须是2D对2D,3D对3D 碰撞器Collision包含触发物体的速度等信息,触发器没有

  4. js 第二课

    =赋值 ==比较 ===绝对比较 &&且 ||  或 !取反 a?1:0 a=ture a?1:0 function LeyBc() { var a={d:11,b:22,c:&quo ...

  5. 致敬Python 2&period;7&excl; 致敬unicode函数&excl;

    致敬Python 2.7! 致敬unicode函数! 终于下定决心放弃python 2.7, 拥抱Python 3.x的阵营了. 因为老是被中文编码虐待, 受够了. 同时也把机器里的widows XP ...

  6. (转) eclipse项目中&period;classpath文件详解

    背景:对于java项目中.classpath文件中的相关定义一直不是很了解,有必要进行深入的学习. 1 前言 在使用eclipse或者myeclipse进行Java项目开发的时候,每个project( ...

  7. JVM源码分析之javaagent原理完全解读

    概述 本文重点讲述javaagent的具体实现,因为它面向的是我们Java程序员,而且agent都是用Java编写的,不需要太多的C/C++编程基础,不过这篇文章里也会讲到JVMTIAgent(C实现 ...

  8. Jmeter中控制某一段脚本失败后重复执行,并在每个HTTP Request名字中加上循环次数

    ================================================== 1.While Controller之前有一个BeanShell Sampler,用于Init N ...

  9. 45&period;Jump Game II---贪心---2018大疆笔试题

    题目链接 题目大意:与55题类似,只是这里要求出跳数. 法一(借鉴):贪心.cur表示当前能到达的最远距离,pre表示上一次能到达的最远距离,每到一个位置更新一次最远距离cur,如果当前位置超过了上一 ...

  10. Codeforces Round &num;202 &lpar;Div&period; 1&rpar; D&period; Turtles DP

    D. Turtles Time Limit: 20 Sec  Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/547/problem/B ...