了不起的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 ...
随机推荐
- 10w行级别数据的Excel导入优化记录
需求说明 项目中有一个 Excel 导入的需求:缴费记录导入 由实施 / 用户 将别的系统的数据填入我们系统中的 Excel 模板,应用将文件内容读取.校对.转换之后产生欠费数据.票据.票据详情并存储 ...
- js进度条
第一步//====================.wrap,.circle,.percent{ position: absolute; ...
- 浅谈dfs
搜索(dfs) 搜索分为bfs与dfs 他们的算法思路都是相同的--穷举 可以说,搜索是万能的,但是复杂度往往是指数级的,往往是穷途末路才用的最后方案 dfs dfs核心操作:回溯+前进 想想你第一次 ...
- hive sql 解析json
在hive中会有很多数据是用json格式来存储的,而我们用数据的时候又必须要将json格式的数据解析成为正常的数据,今天我们就来聊聊hive中是如何解析json数据的. 下面这张表就是json格式的表 ...
- 程序员的修炼-我们为什么会编写BUG
在最近的一周,我维护的业务系统出现了很多坏毛病,一周七天crash掉了4次,每次都需要都是因为一点很小的问题,触发了蝴蝶效应,导致整个系统全盘崩溃,于是产生除了叙述本篇的想法,当然这并不是为了掩盖我在 ...
- 前端同学经常忽视的一个 JavaScript 面试题
题目 function Foo() { getName = function () { alert (1); }; return this; } Foo.getName = funct ...
- P1330 封锁阳光大学——深度优先搜索DFS
P1330 封锁阳光大学 题目描述 曹是一只爱刷街的老曹,暑假期间,他每天都欢快地在阳光大学的校园里刷街.河蟹看到欢快的曹,感到不爽.河蟹决定封锁阳光大学,不让曹刷街. 阳光大学的校园是一张由 \(n ...
- Kail安装VMtools
0x00 前言 之前用吾爱的xp虚拟机,总是装不上vmtools,真是难受.每次跨机器粘贴复制都一件极其痛苦的事,而且虚拟机还不能直接浏览硬盘上的文件.虽说安全性保证了,但是这是真的痛苦.这两天开始用 ...
- day16 本日作业+周末作业
目录 1.编写计数器功能,要求调用一次在原有的基础上加1 2.周末作业 1.编写计数器功能,要求调用一次在原有的基础上加1 def func(): x=0 def counter(): nonloca ...
- CentOS7安装Oracle 11g
准备工作 1.下载Oracle安装包:linux.x64_11gR2_database_1of2.zip 和 linux.x64_11gR2_database_2of2.zip ,可以下载到本地,通过 ...