Node.js教程(一)入门和学习资源

换了个实习单位,事情暂时不多,学习一下新技术,刷刷面试题,日子就这样过了。

今天开始接触node.js,node的编程思想是和我之前所学的所有语音都不同的,用一句话概括node.js

Node.js 是一个让 JavaScript 运行在服务端的开发平台

教程网上都有,个人习惯是先从草根写的文章看起,毕竟他们写的比较灵活,不像官方文档那么严肃,也不像书本那么啰嗦,比较适合入门。

首先当然是安装,在windows上的安装算是简单的了,感谢Micro~

Node.js安装教程

安装完成,接下来就是入门级别的使用了

Node.js入门使用

通过以上两步,相信大家已经对node.js有一个初步了解,接下来是认真的时候了。

对自己英文很自信的,官方文档

虽然本人的英语GRE6,但是还是觉得国语的思维比较适合自己,推荐一本书

《Node.js开发指南》

讲的非常好,而且发现之前看的草根博客有些是从这本书里面来的。

其中有一段讲解Node.js异步式 I/O 与事件驱动的,个人觉得讲的超好

摘录如下

Node.js 最大的特点就是采用异步式 I/O 与事件驱动的架构设计。对于高并发的解决方
案,传统的架构是多线程模型,也就是为每个业务逻辑提供一个系统线程,通过系统线程切
换来弥补同步式 I/O 调用时的时间开销。Node.js 使用的是单线程模型,对于所有 I/O 都采用
异步式的请求方式,避免了频繁的上下文切换。Node.js 在执行的过程中会维护一个事件队
列,程序在执行时进入事件循环等待下一个事件到来,每个异步式 I/O 请求完成后会被推送
到事件队列,等待程序进程进行处理。
例如,对于简单而常见的数据库查询操作,按照传统方式实现的代码如下:
res = db.query('SELECT * from some_table');
res.output();
以上代码在执行到第一行的时候,线程会阻塞,等待数据库返回查询结果,然后再继续
处理。然而,由于数据库查询可能涉及磁盘读写和网络通信,其延时可能相当大(长达几个
到几百毫秒,相比CPU的时钟差了好几个数量级),线程会在这里阻塞等待结果返回。对于
高并发的访问,一方面线程长期阻塞等待,另一方面为了应付新请求而不断增加线程,因此
会浪费大量系统资源,同时线程的增多也会占用大量的 CPU 时间来处理内存上下文切换,
而且还容易遭受低速连接攻击。
看看Node.js是如何解决这个问题的:
db.query('SELECT * from some_table', function(res) {
res.output();
});
这段代码中 db.query 的第二个参数是一个函数,我们称为回调函数。进程在执行到
db.query 的时候,不会等待结果返回,而是直接继续执行后面的语句,直到进入事件循环。
当数据库查询结果返回时,会将事件发送到事件队列,等到线程进入事件循环以后,才会调
用之前的回调函数继续执行后面的逻辑。
Node.js 的异步机制是基于事件的,所有的磁盘 I/O、网络通信、数据库查询都以非阻塞
的方式请求,返回的结果由事件循环来处理。图1-1 描述了这个机制。Node.js 进程在同一时
刻只会处理一个事件,完成后立即进入事件循环检查并处理后面的事件。这样做的好处是,
CPU 和内存在同一时间集中处理一件事,同时尽可能让耗时的 I/O 操作并行执行。对于低速
连接攻击,Node.js 只是在事件队列中增加请求,等待操作系统的回应,因而不会有任何多
线程开销,很大程度上可以提高 Web 应用的健壮性,防止恶意攻击。

这种异步事件模式的弊端也是显而易见的,因为它不符合开发者的常规线性思路,往往
需要把一个完整的逻辑拆分为一个个事件,增加了开发和调试难度。针对这个问题,Node.js
第三方模块提出了很多解决方案,我们会在第6章中详细讨论。

Node.js 用异步式 I/O 和事件驱动代替多线程,带来了可观的性能提升。Node.js 除了使
用 V8 作为JavaScript引擎以外,还使用了高效的 libev 和 libeio 库支持事件驱动和异步式 I/O。

入门就是这样啦,列一下资源列表

node.js下载

https://nodejs.org/download/

Node.js 的官方 API 文档

https://nodejs.org/api/index.html

CNodeJS 社区

https://cnodejs.org/

安装教程

http://www.cnblogs.com/zhangran/archive/2013/03/25/2980413.html

新手教程

http://www.csdn.net/article/2013-08-28/2816731-absolute-beginners-guide-to-nodejs

明天开始深入学习

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-20 04:16:18

Node.js教程(一)入门和学习资源的相关文章

[整理]Node入门 » 一本全面的Node.js教程 - Demo实践所遇到的问题

花了一个上午看完[转载]Node入门 » 一本全面的Node.js教程 根据里面的Demo自己手动实现过程中还是需到写问题,特整理在此. <1>.由于node.msi安装包已经自动添加了系统环境变量,所以可以在任意地方路径下运行node xxx.js.<2>.确定2个环境变量是否已添加(1)一个是PATH上增加node.exe的目录C:\Program Files\nodejs,(已自动添加)(2)一个是增加环境变量NODE_PATH,值为C:\Program Files\node

10+ 最佳的 Node.js 教程和实例

如果你正在找Node.js的学习资料及指南,那么请继续(阅读),我们的教程将会覆盖即时聊天应用.API服务编写.投票问卷应用.人物投票APP.社交授权. Node.js on Raspberry Pi等等. 以下是Node.js入门的简单介绍,如果你对Node.js略有了解可以直接跳过此部分. 那什么是Node.js呢? Node.js是迄今运用最多的服务端JavaScript运行时环境,使用JavaScript开发跨平台的实时WEB应用. Node.js基于Google的V8 JavaScri

Node.js 推荐20多个学习网站及书籍

Web 开发人员对 Node.js 日益增多,更多的公司和开发者开始尝试使用 Node.js 来实现一些对实时性要求高,I/O密集型的业务. 介绍了很不错的书籍和案例,可以提高nodejs开发进度, Node.js Node 官方网站,Node.js 学习之路就起步,开发路途遥远 Nettuts Node.js Tutorial Node.js 编程的就是这样开始的, How To Node Node.js 教程一些文章列表 Node.js 文章列表 The Beginner Node Book

Node.js 教程 01 - 简介、安装及配置

目录: Node.js 教程 01 - 简介.安装及配置 Node.js 教程 02 - 经典的Hello World Node.js 教程 03 - 创建HTTP服务器 简单的说 Node.js 就是运行在服务端的 JavaScript. Node.js 是一个基于Chrome JavaScript 运行时建立的一个平台. Node.js是一个事件驱动I/O服务端JavaScript环境,基于Google的V8引擎,V8引擎执行Javascript的速度非常快,性能非常好. 谁适合阅读本教程?

Node.js教程系列~目录

Node.js这个东西在近几年火起来了,而且会一直火下去,无论在infoq还是在cnblogs,csdn上,都可以到处看到它的样子,它主推的应该就是异步式I/O 吧,是的,设计的很完美,很吸引人,虽然它与正常思维是不同的,但是当你真正认识它后,也会足够的让你爱上它!Node.js确实改变了我的编程观念,改变了我对计算机系统的认识! 名人总结的话,我们应该回味个几百次 同步式I/O: 线程在执行中如果遇到磁盘读写或网络通信(统称为I/O操作),通常要耗费较长的时间,这时操作系统会剥夺这个线程的CP

Node.js 教程

Node.js 教程nodejs简单的说 Node.js 就是运行在服务端的 JavaScript.Node.js 是一个基于Chrome JavaScript 运行时建立的一个平台.Node.js是一个事件驱动I/O服务端JavaScript环境,基于Google的V8引擎,V8引擎执行Javascript的速度非常快,性能非常好.谁适合阅读本教程?如果你是一个前端程序员,你不懂得像PHP.Python或Ruby等动态编程语言,然后你想创建自己的服务,那么Node.js是一个非常好的选择.No

node.js在windows下的学习笔记(2)---简单熟悉一些命令

1.打开如下的安装 2.输入node -v,显示node的版本号 3.输入node --help.显示帮助命令 4.自己用一个文本编辑器编写一下代码,保存为text.js,然后在控制台输入node.exe  text.js的路径(直接把这个js文件拖到控制台自动显示路径),按下回车键 var http = require("http"); http.createServer(function(request, response) { response.writeHead(200, {&

node.js在windows下的学习笔记(1)---安装node.js

1.首先打开http://www.nodejs.org/ 2.选择DOWNLOADS,跳转到下面的画面,我的系统是windows7的32位.所以选择.msi的32bit版本. 3.下载后,得到一个5.43MB大小的安装包, 4.运行安装包 点击next 打个勾,点击next 选择安装目录 最后,安装成功啦 node.js在windows下的学习笔记(1)---安装node.js,布布扣,bubuko.com

Node.js 教程 04 - 模块系统

前言: Node.js的模块系统类似于C/C++的文件引用,可以声明对象,也可以定义类 创建对象. 大家这么理解,就简单了. 定义: 为了让Node.js的文件可以相互调用,Node.js提供了一个简单的模块系统. 模块是Node.js应用程序的基本组成部分,文件和模块是一一对应的. 换言之,一个Node.js文件就是一个模块,这个文件可能是Javascript代码.JSON或者编译过的C/C++扩展. 实例一: 这个实例演示的是,在hello.js中创建一个方法,然后在主程序main.js中调

node.js教程learnyounode 闯关答案

#node.js教程learnyounode 闯关答案 #ex1 console.log("HELLO WORLD"); #ex2 var sum =0; for(var i =2;i<process.argv.length;i+=){ sum+=parseFloat(process.argv[i]); } console.log(sum); #ex3 var fs = require('fs'); var pathname = process.argv[2]; //consol