Chapter 1

安装

1.Node.js的设计理念之一,只维护较少量的依赖,这使得安装node.js变得非常简单。

2.执行文件console.log没问题,但是node执行http静态服务器的时候卡死

var http = require('http');
var serv = http.createServer(function(req,res){
res.writeHead(200,{'Content-Type':'text/html'});
res.end('<marquee>Smashing Node!</marquee> ');
});
serv.listen(3000);

经过了问别人以及问群里的大佬,发现又是个傻屌问题,我太蠢了,总是犯这种低级错误,就跟之前的变量写错名字之类的问题。

这样不动是正常的,需要自己去浏览器访问,根据设置的端口,后面一开始以为自己的端口是3030刷新了半天,结果发现写的是3000

成功的响应。

3.NPM (包管理器)

Chapter 2

JS概述

1.call ,aply , bind的区别,都是改变函数内部this的指向, call接受参数列表,apply接受一个参数数组,bind返回的是一个函数,必须再调用bind(s)()。

Chapter 3

阻塞与非阻塞IO

能力越大,责任也就越大。始终牢记这点对书写出健壮的Node.Js程序,避免运行时出错是非常重要的。

//PHP
print('Hello');
sleep(5);
print('World');
//node
console.log('hello');
setTimeout(function(){
console.log('World');
},5000);

第一个php的例子,sleep()阻塞了线程的执行。程序进入睡眠时,就什么事都不做了。

而node使用了事件轮询,因此这里setTimeout是非阻塞的。就假如在setTimeout的后面加个console.log('bye')的语句,会立即执行,结果如下

Chapter 4 

Node中的JavaScript

1.在浏览器中,全局对象指的就是window对象。在window对象上定义的任何内容都可以被全局访问到。比如,setTimeout其实就是window.setTimeout,document其实就是window.document。

2.Node中有两个类似但却各自代表着不同含义的对象,如下所示。

  global:和window一样,任何global对象上的属性都可以被全局访问到。

  process:所有全局执行上下文的内容都在process对象中。在浏览器中,只有一个window对象,在node中,也只有一个process对象。举例来说,浏览器中窗口的名字是window.name,类似的,node中进程的名字是process.title。

3.模块系统,三个核心的全局对象:require,module,exports。

//module_a.js
console.log('this is a');
//module_b.js
console.log('this is b');
//main.js
require('module_a');
require('module_b');

这样会报错,node找不到,因为他们没有通过npm来安装,也不再node_modules目录中,而且node自带模块中没有以此为名的模块。

解决办法:在require参数前面加./,当前路径下

4.默认情况下,每个模块都会暴露一个空对象,如果想在该对象上添加属性,那么简单地使用exports即可;

//module.c
exports.name = 'john';
exports.data = 'this is some data';
var privateVariable = 5;
exports.getPrivate = function() {
return privateVariable;
};
//index.js
var a = require('./module_c');
console.log(a.name);
console.log(a.data);
console.log(a.getPrivate);

Chapter 5

命令行工具(CLI)以及FS API:首个Node应用

了不起的Node.js 5/16的更多相关文章

  1. 了不起的Node.js: 将JavaScript进行到底(Web开发首选,实时,跨多服务器,高并发)

    了不起的Node.js: 将JavaScript进行到底(Web开发首选,实时,跨多服务器,高并发) Guillermo Rauch 编   赵静 译 ISBN 978-7-121-21769-2 2 ...

  2. [读书笔记]了不起的node.js+实践(一)

    环境的变化带来了技术大跃进,机遇和挑战同时到来.基于我js也没有学,只好赶鸭子上架一起学了.(>﹏<) 1.先读读书 一开始就不知死活地看<深入浅出node.js>,弄得团团转 ...

  3. 了不起的Node.js读书笔记

    原文摘自我的前端博客,欢迎大家来访问 http://www.hacke2.cn 第二章 Js概览 基于GoogleV8引擎 Object.keys(o) 数组方法:遍历forEach.过滤filter ...

  4. [读书笔记]了不起的node.js(三)

    这周的nodejs学习内容为几个依赖包的使用,把书上的例子都敲了一遍.这篇就以例程为线索,复习一下一周的工作. 1.connect 这个例程主要是使用connect依赖包,connect提供一个中间件 ...

  5. [读书笔记]了不起的node.js(四)

    这周的学习主要是nodejs的数据库交互上,并使用jade模板一起做了一个用户验证的网站.主要是遇到了一下几个问题. 1.mongodb版本过低 npm ERR! Not compatible wit ...

  6. [读书笔记]了不起的node.js(二)

    这周做项目做得比较散(应该说一直都是这样),总结就依据不同情境双开吧-这篇记录的是关于node的学习总结,而下一篇是做项目学到的web前端的知识. 1.HTTP篇 node的HTTP模块在第一篇时接触 ...

  7. [已读]了不起的Node.js

    2015/1/22 昨天下班前看完了这本,也不算看完,redis与mysql部分没有去翻,觉得暂时用不上. 觉得第一部分的内容还不错. 第二部分主要讲fs,tcp和http这三个模块. 第三个部分是例 ...

  8. 【干货分享】Node.js 中文学习资料和教程导航

    这篇文章来自 Github 上的一位开发者收集整理的 Node.js 中文学习资料和教程导航.Node 是一个服务器端 JavaScript 解释器,它将改变服务器应该如何工作的概念,它的目标是帮助程 ...

  9. node.js中文资料导航 Mark

    Node.js HomePage Infoq深入浅出Node.js系列(进阶必读) Node.js中文文档 被误解的 Node.js Node.js C++ addon编写实战系列 热门node.js ...

随机推荐

  1. bitbucket的简单使用

    1.如果你已经把项目建好的话,那么提交上去这样:没有构建本地仓库的话,那先打包本地,到你的项目路径上去后git initgit remote add origin https://linjiayu@b ...

  2. Java程序员阅读源码的小技巧,原来大牛都是这样读的,赶紧看看!

    今天介跟大家分享一下我平时阅读源码的几个小技巧,对于阅读java中间件如Spring.Dubbo等框架源码的同学有一定帮助. 本文基于Eclipse IDE,我们每天都使用的IDE其实提供了很多强大的 ...

  3. JIT的Profile神器JITWatch

    简介 老是使用命令行工具在现代化社会好像已经跟不上节奏了,尤其是在做JIT分析时,使用LogCompilation输出的日志实在是太大了,让人望而生畏.有没有什么更加简便的方法来分析JIT日志呢?快来 ...

  4. 基础设计模式-02 UML图

    在学习设计模式的时候,经常会涉及到类,接口之间关系的梳理,UML图就是一个很好的方式: 1.类,抽象类,接口 类: 抽象类: 接口: 1.抽象类斜体表示: 2.“+”表示public,"-& ...

  5. 最大的位或 HDU - 5969 简单思维题

    题目描述 B君和G君聊天的时候想到了如下的问题. 给定自然数l和r ,选取2个整数x,y满足l <= x <= y <= r ,使得x|y最大. 其中|表示按位或,即C. C++. ...

  6. CentOS7下安装和配置SVN

    1. 由于是在CentOS7最小化安装的操作系统环境安装SVN,我们首先排除一些环境因素.在此首先关闭了防火墙,安装了vim文本编辑工具.   2. 使用yum install -y subversi ...

  7. tidyverse|数据分析常规操作-分组汇总(sumamrise+group_by)

    | 本文首发于 “生信补给站” https://mp.weixin.qq.com/s/tQt0ezYJj3H7x3aWZmKVEQ 使用tidyverse进行简单的数据处理: 盘一盘Tidyverse ...

  8. 【Python】__name__ 是什么?

    前言 在我们浏览一下 python 文件或者自己写 python 代码的时候,时常会在代码的最后加上这样的一行代码 if __name__ == '__main__': func_name() 那么这 ...

  9. PE文件格式详解(二)

    0x00 前言 上一篇讲到了PE文件头的中IMAGE_FILE_HEADER结构的第二个结构,今天从IMAGE_FILE_HEADER中第三个结构sizeOfOptionalHeader讲起.这个字段 ...

  10. like's photos

    wallhaven官网