了不起的Node.js 5/16
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的更多相关文章
- 了不起的Node.js: 将JavaScript进行到底(Web开发首选,实时,跨多服务器,高并发)
了不起的Node.js: 将JavaScript进行到底(Web开发首选,实时,跨多服务器,高并发) Guillermo Rauch 编 赵静 译 ISBN 978-7-121-21769-2 2 ...
- [读书笔记]了不起的node.js+实践(一)
环境的变化带来了技术大跃进,机遇和挑战同时到来.基于我js也没有学,只好赶鸭子上架一起学了.(>﹏<) 1.先读读书 一开始就不知死活地看<深入浅出node.js>,弄得团团转 ...
- 了不起的Node.js读书笔记
原文摘自我的前端博客,欢迎大家来访问 http://www.hacke2.cn 第二章 Js概览 基于GoogleV8引擎 Object.keys(o) 数组方法:遍历forEach.过滤filter ...
- [读书笔记]了不起的node.js(三)
这周的nodejs学习内容为几个依赖包的使用,把书上的例子都敲了一遍.这篇就以例程为线索,复习一下一周的工作. 1.connect 这个例程主要是使用connect依赖包,connect提供一个中间件 ...
- [读书笔记]了不起的node.js(四)
这周的学习主要是nodejs的数据库交互上,并使用jade模板一起做了一个用户验证的网站.主要是遇到了一下几个问题. 1.mongodb版本过低 npm ERR! Not compatible wit ...
- [读书笔记]了不起的node.js(二)
这周做项目做得比较散(应该说一直都是这样),总结就依据不同情境双开吧-这篇记录的是关于node的学习总结,而下一篇是做项目学到的web前端的知识. 1.HTTP篇 node的HTTP模块在第一篇时接触 ...
- [已读]了不起的Node.js
2015/1/22 昨天下班前看完了这本,也不算看完,redis与mysql部分没有去翻,觉得暂时用不上. 觉得第一部分的内容还不错. 第二部分主要讲fs,tcp和http这三个模块. 第三个部分是例 ...
- 【干货分享】Node.js 中文学习资料和教程导航
这篇文章来自 Github 上的一位开发者收集整理的 Node.js 中文学习资料和教程导航.Node 是一个服务器端 JavaScript 解释器,它将改变服务器应该如何工作的概念,它的目标是帮助程 ...
- node.js中文资料导航 Mark
Node.js HomePage Infoq深入浅出Node.js系列(进阶必读) Node.js中文文档 被误解的 Node.js Node.js C++ addon编写实战系列 热门node.js ...
随机推荐
- PKIX
这是证书认证不通过的问题,对https协议免认证 http://blog.csdn.net/zziamalei/article/details/46520797 使用上面的方法时,使用spring的& ...
- Alink漫谈(十) :特征工程 之 特征哈希/标准化缩放
Alink漫谈(十) :特征工程之特征哈希/标准化缩放 目录 Alink漫谈(十) :特征工程之特征哈希/标准化缩放 0x00 摘要 0x01 相关概念 1.1 特征工程 1.2 特征缩放(Scali ...
- css3动画讲解,关于css3的@keyframes和animation
通过css3我们可以创建动画,它能取代gif图片.Flash.Js动画等,css3的animation动画是应用在html的DOM元素上的,通过样式来实现的. @keyframes 规则 @Keyfr ...
- 【博客搭建】Typecho个人博客搭建,快速安装,超小白(很简单的)
使用Typecho框架一个月又十二天了,就目前感觉来说,整体还不错,很多方面都支持个性化,二次开发,但是目前MD编辑器有一丢丢问题,不能同步滚动条滚动,就是编辑器区域滚动,预览区域没有动静,需要两边都 ...
- JS的数据类型你真的懂了吗
一.JS数据类型分类 1.基本数据类型 (1)Number 数字 (2)String 字符串 (3)Boolean 布尔值 (4)null 空对象指针 (5)undefined 为定义 (6)symb ...
- JavaScript学习 Ⅳ
八. 批量创建对象 使用工厂方法创建对象 function creatPerson(name, age, gender='男'){ var obj = new Object(); obj.name = ...
- 自定义Mybatis自动生成代码规则
前言 大家都清楚mybatis-generate-core 这个工程提供了获取表信息到生成model.dao.xml这三层代码的一个实现,但是这往往有一个痛点,比如需求来了,某个表需要增加字段,肯定需 ...
- 微信支付之获取code
微信支付之获取code, 1:访问下面的连接(自己拼) 2:去回调地址里拿code https://open.weixin.qq.com/connect/oauth2/authorize?appid= ...
- 数据可视化之PowerQuery篇(二)这个方法帮你快速计算列
https://zhuanlan.zhihu.com/p/81846862 PowerQuery中,对两列或者多列的计算一般通过添加自定义列来实现,以下表为例, 如果需要1月和2月数据的合计,可以添加 ...
- 使用MapReduce运行WordCount案例
@ 目录 一.准备数据 二.MR的编程规范 三.编程步骤 四.编写程序 Mapper程序解读 一.准备数据 注意:准备的数据的格式必须是文本,每个单词之间使用制表符分割.编码必须是utf-8无bom ...