`
phplaber
  • 浏览: 143832 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

《Node入门》读书笔记

阅读更多

一直以来,我都仅仅将JavaScript视为一种前端技术,由客户端的浏览器解释并执行,这种观念在心中已经根深蒂固。直到Node.js的出现,这种观念才被彻底地击碎。通过Node.js技术,JavaScript能实现服务器端应用。带着强烈的好奇心,我决定试图了解Node.js。说干就干,在Google上搜了一圈,发现了很多关于Node.js的资料,Node.js社区非常的活跃,最后找到了《Node入门》这本书。简单浏览了下,发现这本书挺适合像我这样的Node.js新手,所以我决定仔细把这本书读完(看完大概花了10小时,看的慢)。下面就是我做的读书笔记:

 

1,JavaScript从诞生至今,其存在形态经历了三个阶段:一是,上世纪90年代作为对DHTML进行增强的小工具;二是,jQuery这样严格意义上的前端技术;三是,由于Node.js的出现,作为服务端技术。

 

2,要实现在服务器端运行JavaScript代码,代码需要先被解释然后正确的执行。Node.js的原理正是如此,它使用了Google的V8虚拟机(即:Chrome浏览器使用的JavaScript运行环境),来解释和执行JavaScript代码。

 

3,Node.js事实上既是一个运行时环境,同时又是一个库。

 

4,我们还要对此(一个实际的使用Node.js的应用)进行抽象,来寻找一种适合构建更为复杂的Node.js应用的方式。

 

5,使用Node.js时,我们不仅仅在实现一个应用,同时还实现了整个HTTP服务器。

 

6,使用JavaScript编写的一个简单的HTTP服务器原型:

// Version 1
var http = require("http");

http.createServer(function(request, response) {
  response.writeHead(200, {"Content-Type": "text/plain"});
  response.write("Hello World");
  response.end();
}).listen(8888);
console.log("Server has started.");

// Version 2
var http = require("http");

function onRequest(request, response) {
  response.writeHead(200, {"Content-Type": "text/plain"});
  response.write("Hello World");
  response.end();
}
http.createServer(onRequest).listen(8888);
console.log("Server has started.");
 

7,在JavaScript中,一个函数可以作为另一个函数的参数进行传递。我们可以先定义一个函数,然后传递,也可以在传递参数的地方直接定义函数。

 

8,用Node.js构建的HTTP服务器是单进程的,但请求任何时候都可能到达,所以需要对请求进行异步处理。

 

9,这个就是回调(Call Back)。我们给某个方法传递一个函数,这个方法在有相应事件发生时调用这个函数进行回调。

 

10,构建一个简单Node.js外部模块示例:

// Server模块
var http = require("http");

function start() {
  function onRequest(request, response) {
    response.writeHead(200, {"Content-Type": "text/plain"});
    response.write("Hello World");
    response.end();
  }

  http.createServer(onRequest).listen(8888);
  console.log("Server has started.");
}

exports.start = start;
 在主文件main.js中使用Server模块:
var server = require("./server");

server.start();
 

11,为了让服务器将不同的请求路由到相应的代码,我们需要为路由提供请求的URL和GET及POST参数。因此,我们需要查看HTTP请求,从中提取出请求的URL以及GET/POST参数。

 

12,就像这样,我们传递一个东西,然后服务器利用这个东西来完成一些事情。但是,服务器其实不需要这样的东西,它只需要把事情做完就行,为了把事情做完,你根本不需要东西,你需要的是动作。

 

13,Node.js在不新增额外线程的情况下,依然可以对任务进行并行处理。实际上,Node.js是单线程的,它通过事件回圈(event loop)来实现并行操作。因此,我们要充分利用这一点,尽可能的避免阻塞操作,而多使用非阻塞操作。要实现非阻塞操作,我们需要使用回调函数,通过将函数作为参数传递给其它需要花时间处理的函数。

 

不得不说,像这样通过构建一个不太难但却是真正的实际应用,一步一步分析其所运用技术及其具体细节,最后构建出应用的方式,非常适合初学者的入门。通过《Node入门》这本书,相信你能快速的进入Node的奇妙世界。

 

最后,贴上《Node入门》这本书的中文网上地址和书中源码在Github上地址。

中文地址:http://www.nodebeginner.org/index-zh-cn.html

Github地址:https://github.com/ManuelKiessling/NodeBeginnerBook/tree/master/code/application

 

(完)

分享到:
评论

相关推荐

    node_beginner:Node入门书原始码,包含一些个人理解和笔记-源码包

    《Node入门书原始码》是针对Node.js初学者的一份宝贵资源,包含了作者对Node.js基础知识的个人理解和学习笔记。这个开源项目不仅提供了书中部分关键代码的实现,还展现了作者在学习过程中的思考路径,这对于那些希望...

    了不起的node.js读书笔记之node.js中的特性

    在网上搜刮到了41页的《node入门》,自己学着搭建了一个Web应用。并且在刷新成就感后,就抱读《了不起的node.js》。现准备看完这本书后再回读《深入浅出node.js》。 2.搭建环境 运行git上的例程(3次报错)  在官网...

    VUE入门学习项目资料与学习笔记.zip

    这个名为“VUE入门学习项目资料与学习笔记.zip”的压缩包包含了一份详细的学习资源,帮助初学者深入理解Vue.js的核心概念和技术。以下是对这些资源的详细解读: 1. **Vue环境搭建**:Vue的安装通常有两种方式,一种...

    express入门笔记

    Express是基于Node.js平台的高性能...通过阅读《express入门笔记》和实践以上示例,你将逐步掌握Express的基本用法,并能构建自己的Node.js Web应用。继续学习和实践,探索Express的更多可能性,提升你的Web开发技能。

    JavaScript入门课堂随堂笔记.zip

    JavaScript,也被称为JS,是一种广泛应用于网页和网络应用的脚本语言。它是Web开发的核心技术之一,用于...在阅读"JavaScript入门课堂随堂笔记"的过程中,建议结合实际项目进行练习,以便更好地理解和运用所学知识。

    Nodejs开发的学习笔记.rar

    Node.js是一种基于Chrome...通过阅读这份学习笔记,你将能够系统地学习Node.js开发,从基础概念到实际应用,逐步成为一名熟练的Node.js开发者。无论是搭建Web服务器、处理数据库交互,还是实现实时通信,都能游刃有余。

    jBPM-jPDL学习笔记.zip

    通过阅读《jBPM-jPDL学习笔记.pdf》,你可以深入了解这些概念,并学会如何使用jPDL编写和部署流程定义,从而在实际项目中实现灵活、可扩展的业务流程管理。这份资料对于初学者来说是一份很好的入门指南,能够帮助...

    typescript入门教程

    TypeScript入门教程是由xcatliu编写,他根据自身学习TypeScript的经历,整理出了一系列的学习笔记。这本教程从JavaScript程序员的角度出发,帮助初学者循序渐进地理解TypeScript,并提供了一个与官方手册不同的视角...

    vue项目总结和前端学习笔记-06091809.pdf

    通过阅读这些资源,可以加深对各种页面常见布局、知名网站实例的理解,并在实践中不断提升前端开发技能。 #### 总结 文档《vue项目总结和前端学习笔记-***.pdf》为前端开发者提供了系统的学习指南,从Vue基础到...

    博客:大前端技术为主,读书笔记,随笔,理财为辅,做个终身学习者

    技术为主,读书笔记,随笔,理财为辅,做一个终身学习者。 收获不止技术,还有财富。 专栏 目录 文章 文章版权为夜尽天明所有,允许允许,不得转载;如要转载文章,请联系笔者。 Vue3.x 打字稿 软技能 前端工程师的...

    Node.js-mini-projects:Node.js迷你项目

    - **阅读笔记**:用户可以通过ID或搜索关键词获取笔记内容,应用程序负责从存储中读取并显示。 - **列出笔记**:应用程序遍历存储的所有笔记,将它们以列表形式展示给用户。 2. **天气应用**: - **API使用**:...

    Reading-Notes:读书笔记们

    学习笔记都在这里了 好好学习,天天向上!生命不息,阅读不止! 本仓库参考以下书籍或资料 JavaScript高级程序设计(第三版) You don't know JS 系列 ES6 标准入门 Node.JS深入浅出 图解HTTP HTTP权威指南 Head First...

    JavaScript1小时快速上手笔记快速复习

    这份"JavaScript1小时快速上手笔记快速复习"旨在帮助已有编程基础的学习者迅速掌握JavaScript的基本概念和常用技巧,以便在短时间内入门并进行有效的复习。 1. **变量与数据类型**:JavaScript支持七种数据类型,...

    study-blog:学习nodejs中的一些笔记

    在学习Node.js的过程中,有很多在线资源可以帮助你快速入门和提升技能。MDN Web文档提供了详尽的JavaScript参考,而Node.js官网则有详细的API文档和教程。除此之外,像Stack Overflow、GitHub和各种技术博客也是获取...

    python, golang, js 等学习笔记归档. 包含代码, 文档, etc.zip

    Python以其易读性强、语法简洁而闻名,是初学者入门的理想选择。其主要知识点包括: 1. **基础语法**:变量、数据类型(如整型、浮点型、字符串、列表、元组、字典、集合)、流程控制(条件语句、循环语句)、函数...

    javascript学习笔记

    总的来说,这份"JavaScript学习笔记"旨在帮助初学者快速入门,并为有经验的开发者提供参考。通过深入学习,你可以掌握JavaScript的核心原理,运用到实际项目中,从而成为一名熟练的前端开发者。

    学习笔记1111111

    而“综合资源”则暗示了笔记中可能包含了各种类型的资料,如代码示例、教程链接、阅读材料、视频教程等,这些都为全面理解和应用IT知识提供了丰富的素材。 【压缩包子文件的文件名称列表】:“OneNote 笔记本”通常...

    awesome-javascript-es:链接,资源等的集合关于西班牙语JavaScript

    Nodebeginner -Node.js入门书 教程D3 NodeJSKoans 中级JS笔记 高级JS注释 现在使用JavaScript 互动课程:关闭或关闭 学习AngularJS-这样的列表,但重点是AngularJS。 网站/博客 特定JavaScript NodeHispano ...

    js-ShanGuiGu:学习JavaScript尚硅谷课程的个人学习笔记

    JavaScript,简称JS,是一种广泛应用于Web开发的轻量级编程语言,主要负责网页的动态效果和用户...通过阅读这样的笔记,可以快速理解和掌握JavaScript的核心概念,同时也能看到实际应用中可能遇到的问题和解决方案。

Global site tag (gtag.js) - Google Analytics