了不起的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 ...
随机推荐
- 题解 P5937 【[CEOI1999]Parity Game】
这道题有两种做法,一种是 扩展域(种类并查集),一种是 边带权(带权并查集).种类并查集貌似应该都比带权并查集简单,所以先讲种类并查集的做法,再讲带权并查集 种类并查集 若 sum[ l ~ r ] ...
- 第二部分用户交互程序开发,通过paramiko记录ssh会话记录
需求及任务:实现一个给用户登录的界面(通过ssh登到堡垒机上,然后给它展现一个命令行的页面,然后他选择登哪台机器,一选择就连上去且把日志也记录下来). 先在admin创建几条组数据并与用户关联如下图: ...
- 很实用的h5实现名片扫描识功能快速结合市场运营
功能描述: 点击名片识别按钮,将名片上的个人信息扫描并解析出来显示. 实现步骤: 1.点击第一个页面上的名片识别按钮,调出手机摄像头和相册,让用户进行选择 2.获取照片或者图片的base64数据,传值 ...
- gulp之demo
1.安装gulp cnpm install -g gulp; 2.然后还需要在当前目录安装gulp,具体不详,只知道安装了之后会在当前目录下的node_modules下多一个gulp文件夹 cnpm ...
- java 和 c++ 的三目运算符的区别
转载请注明出处:http://www.cnblogs.com/liangyongrui/p/6348001.html 以前很少用java,就知道java和c++差不多. 今天就踩了一个坑. 不吐糟,直 ...
- 读CSAPP第一章的收获
这个系列只写了CSAPP第三版对于我的收获. 里面的内容很多,我只写我以前不知道的,然后现在又觉得挺有用的内容. 没有很好的排版,将就看. Amadhl定律:主要观点,想要显著加速整个系统,必须提升全 ...
- python 并发 ThreadPoolExecutor
正文:Executor是一个抽象类,子类: ThreadPoolExecutor和ProcessPoolExecutor ,一个线程池,一个进程池. future对象:在未来的某一时刻完成操作的对象. ...
- 机器学习实战基础(三十八):随机森林 (五)RandomForestRegressor 之 用随机森林回归填补缺失值
简介 我们从现实中收集的数据,几乎不可能是完美无缺的,往往都会有一些缺失值.面对缺失值,很多人选择的方式是直接将含有缺失值的样本删除,这是一种有效的方法,但是有时候填补缺失值会比直接丢弃样本效果更好, ...
- 如何用HMS Nearby Service给自己的App添加近距离数据传输功能
当你给朋友发送手机资料时,过了很久进度条却动也不动:当你想发送大文件给同事时,仅一个文件就用光了你所有流量:当你跟朋友乘坐飞机时想一起玩游戏时,却因没有网络无奈放弃. 们生活中似乎经常能遇到这 ...
- redis linux开机启动 (简单高效)
1. 在edis下载文件包中找 redis/utils 找到redis_init_script 将它拷贝到 /etc/init.d 目录并重命名为redis cd redis cd utils mv ...