继续学学node.js。翻开书首先被惊到=。=:作者BYVoid是清华大学2010级本科……同样是2010级本科,我真是无语凝噎,大学浪费了好多时间。不过过去的已经过去了,接下来好好努力提高才好,加油。
在这之前,我已经看了一些其他的资料,对Node.js有了一些基本的了解。写了一篇博客 ,之后看了一本只有42页的入门书《Node入门》,这本书虽然很短,但是却是一本很不错的书。
接下来开始看这本《Node.js开发指南》,准备之后再看看《深入浅出Node.js》逐步来学习node。
下面开始笔记:
第一章 Node.js简介
npm:node package manager
异步I/O
事件驱动
Node.js进程在同一时刻智慧处理一个事件,完成后立即进入事件循环检查并处理后面的事件。
第二章 安装和配置Node.js
Microsoft Windows系统上安装Node.js:官网下载安装即可。这样安装的node.js还自带npm,可以直接使用。
第三章 Node.js快速入门
1.运行node.js程序的基本方法就是执行node script.js
其中script.js是脚本的文件名。
2.还可以使用node -e"要执行的js代码"
来执行js。
3.运行无参数的node将会启动一个JavaScript的交互式shell
4.使用node.js的http模块可以轻松创建服务器
小技巧——使用supervisor
开发时会发现,修改node.js文件后,必须重启node.js服务器才生效。这是因为node.js只有在第一次引用某部分时才会去解析脚本文件,以后都会直接访问内存,避免重复载入。node.js这种设计有利于提高性能,却不利于开发调试。
supervisor可以帮助时实现这个功能,它会见识你对代码的改动并自动重启node.js。使用方法很简单:首先npm install -g supervisor
安装;接下来使用supervisor命令启动文件,例如:supervisor index.js
。
这样就可以用supervisor这个小工具解决开发中的调试问题。
异步式I/O(非阻塞I/O)与事件式编程
为了处理异步 I/O,线程必须有事件循环,不断地检查有没有未处理的事件,依次予
以处理。
回调函数
//readfile.js
var fs = require('fs');
fs.readFile('file.text','UTF-8',function(err,data){
if(err){
console.error(err);
}else{
console.log(data);
}
});
console.log('end');
运行结果如下:
end
Content of the file.text.
由于是异步所以先输出end,当读取到文件之后触发匿名回调函数,再输出data
如果不用匿名函数,也可以将其定义在外边,例如:
//readfilecallback.js
functon readFileCallBack(err,data){
if(err){
console.error(err);
}else{
console.log(data);
}
}
var fs = require('fs');
fs.readFile('file.txt','utf-8',readFileCallBack);
console.log('end');
Node.js也提供了同步文件的API:
//readFilesync.js
var fs = require('fs');
var data = fa.readFileSync('file.text','utf-8');
console.log(data);
console.