nodejs学习一

Node特点

  1.异步I/O

  2.事件,回调函数

  3.单线程

编程思想的转变:

  1.同步编程 ------->  异步编程

  2.单线程编程

Node应用场景

  技术选型极为重要,为不同的场景选择合适的技术

  1.I/O密集型

    node利用事件循环的处理能力,而不是启动每一个线程为每一个请求服务

  2.cpu密集型

    

模块机制

  commonJS规范

  模块的引入,导出,标识符

    require,module,exports

  模块加载的过程:

    路径解析,定位文件,编译等

Node模块种类

  1.Node核心模块

  2.第三方文件模块

  第三方模块中,模块之间散列在各地,相互之间不能直接引用

  在模块之外,包和NPM是将模块联系起来的一种机制

commonJS 包的规范

  包是在模块基础上进一步组织javascript代码

  commonJS包规范是理论,NPM则是实践

  NPM帮助第三方模块完成发布,安装,依赖等

  借助NPM,Node与第三方模块之间形成了很好的生态系统

NPM常用命令

  如果将个人的包上传到npm资源仓库服务器中,需要npm中注册账户,创建仓库

异步I/O

  为何node要使用异步I/O?

    1.用户体验

      前端中javascript与UI渲染在同一个进程中,同步情况下,响应糟糕

      异步I/O可以消除前端UI阻塞

    2.资源分配

      单线程缺点:容易阻塞I/O,无法利用多核cpu资源

      多线程缺点:容易造成死锁,状态同步

      Node给出中间方案:

          利用单线程,远离多线程的死锁,状态同步

          利用异步I/O,远离单线程的阻塞,更好的利用cpu

          提供类似前端web workers的子线程高效利用多核cpu

Node的异步I/O

  完成整个异步I/O环节的有:事件循环,观察者,请求对象

Node异步编程

  

        

时间: 2024-10-11 05:25:40

nodejs学习一的相关文章

nodejs学习资料

NodeJS基础 什么是NodeJS JS是脚本语言,脚本语言都需要一个解析器才能运行.对于写在HTML页面里的JS,浏览器充当了解析器的角色.而对于需要独立运行的JS,NodeJS就是一个解析器. 每一种解析器都是一个运行环境,不但允许JS定义各种数据结构,进行各种计算,还允许JS使用运行环境提供的内置对象和方法做一些事情.例如运行在浏览器中的JS的用途是操作DOM,浏览器就提供了document之类的内置对象.而运行在NodeJS中的JS的用途是操作磁盘文件或搭建HTTP服务器,NodeJS

[Todo] Nodejs学习及Spider实验(包括php入门学习、React入门学习)

/Users/baidu/Documents/Data/Interview/Web-Server开发 深入浅出Node.js-f46c http://blog.csdn.net/u012273376/article/details/52736906 利用nodejs做爬虫 http://www.runoob.com/nodejs/nodejs-callback.html nodejs学习之路 http://www.runoob.com/php/php-tutorial.html php学习之路

NodeJS学习之2:express版的Hello World

接着 NodeJS学习之1:express安装 的结果: 我们继续应用程序的编写. 新建一个 app.js 文件 $ touch app.js copy 进去这些代码 // 这句的意思就是引入 `express` 模块,并将它赋予 `express` 这个变量等待使用. var express = require('express'); // 调用 express 实例,它是一个函数,不带参数调用时,会返回一个 express 实例,将这个变量赋予 app 变量. var app = expre

nodeJs学习

nodejsStudy 阅读<nodejs开发指南>来学习node.js的一个github仓库. 仓库里面放了这本书的电子版以及书籍的源代码 还放了node.js的最新win32的版本 node-v0.10.29 x86.msi 最后就是studyCase文件夹,存放着自己阅读书籍然后敲下来的学习案例 nodeJs学习,布布扣,bubuko.com

nodejs学习四 Node.js NPM

什么是NPM? 不知道大家注意没有,windows平台下的Node.js安装包大小才区区4M多,真可以用短小精悍来形容它,作为一种编程语言,像java一个SDK 就几十M,为什么node.js的运行环境这么小呢?这其中的微妙之处在于,它拥有一个庞大的第三方软件库. 在Node本身提供的包(原生)中没有我们要实现的功能模块的时候,我们可以去寻找下是否已经有人实现了这种功能.毕竟重复造轮子这种事情,很多人都不想干. 去哪里寻找我们想要的包呢?如果你还不知道报的名字,你可以去https://www.n

nodejs学习一 Holle World

安装包下载:http://www.nodejs.org/download/ Windows 操作系统安装方法: 第一步:下载安装包: 第二步:运行node-v0.10.28-x86.msi,选择要安装的地址. 第三步:安装完后,运行cmd ,输入node,如图: 说明安装成功.这样你就进入nodejs 世界. 闪烁的光标等你输入. 第一个程序Hello World 就这么简单,你完成了人生第一次nodejs体验.console.log . 我们在换种方式来体验一下. 我们建立我们将要学习的一个目

nodejs学习笔记(基于v7.4.0)

nodejs学习笔记 一.buffer: 全局对象(单例   Buffer.from   Buffer.alloc   Buffer.allocUnsafe ) 编码类型 描述 ascii 仅仅用于7位ascall数据编码,速度快,如果设置了将会剥离高位 utf8 多字节的编码的Unicode字符,网页文档大部分默认都为它. utf16le 小端编码的Unicode字符,2或者4个字节 ucs2 utf16le的别名 base64 Base64是网络上最常见的用于传输8Bit字节代码的编码方式之

nodejs学习笔记_nodejs和PHP在基础架构上的差别--共享状态的并发

绝大多数对于Node.js的讨论都把关注点放在了处理高并发能力上,做开发的时候一定要明确node内部做出的权衡,以及node应用性能好的原因. node 为javascript引入了一个复杂的概念,:共享状态的并发. node採用一个长期执行的进程 而php在apache中会产生多个进程 例如以下图所看到的: 代码验证: PHP: <?php $i = 0; $i++; echo $i nodejs: var http = require('http'); var i=0; http.creat

nodejs学习笔记之安装、入门

由于项目需要,最近开始学习nodejs.在学习过程中,记录一些必要的操作和应该注意的点. 首先是如何安装nodejs环境?(我用的是windows 7环境,所以主要是windows 7的例子.如果想看linux下的安装可以参考http://www.cnblogs.com/meteoric_cry/archive/2013/01/04/2844481.html) 1. nodejs提供了一些安装程序,可以去官网(http://nodejs.org/download/)按照自己的机器进行下载,下载完

nodejs学习三 process对象

rocess对象,我说的是对象.这个对象包含的方法和属性非常的多,它向我们打开了一个通往Node.js的大门,让我们队Node.js有更多的了解. 你知道安装的Node.js的版本吗? 你知道你的Node安装在上面平台下吗? 你知道你的Node可执行文件的绝对路径吗? 你想得到你env环境变量内容吗? 上面输入的信息你可以更具体点,比如console.log(process.env.OS) 你想得到命令行上的参数吗? 好了,下面我们来写一个js.命名process.js 在命令行上运行它: 我们