《Node.js开发指南》读书笔记

继续学学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.
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
目 录 第1章 Node.js简介 1 1.1 Node.js是什么 2 1.2 Node.js能做什么 3 1.3 异步式I/O与事件驱动 4 1.4 Node.js的性能 5 1.4.1 Node.js架构简介 5 1.4.2 Node.js与PHP+Nginx 6 1.5 JavaScript简史 6 1.5.1 Netscape与LiveScript 7 1.5.2 Java与Javascript 7 1.5.3 微软的加入——JScript 8 1.5.4 标准化——ECMAScript 8 1.5.5 浏览器兼容性问题 9 1.5.6 引擎效率革命和JavaScript的未来 9 1.6 CommonJS 10 1.6.1 服务端JavaScript的重生 10 1.6.2 CommonJS规范与实现 11 1.7 参考资料 12 第2章 安装和配置Node.js 13 2.1 安装前的准备 14 2.2 快速安装 14 2.2.1 Microsoft Windows系统上安装Node.js 14 2.2.2 Linux发行版上安装Node.js 16 2.2.3 Mac OS X上安装Node.js 16 2.3 编译源代码 17 2.3.1 在POSIX系统中编译 17 2.3.2 在Windows系统中编译 18 2.4 安装Node包管理器 18 2.5 安装多版本管理器 19 2.6 参考资料 21 第3章 Node.js快速入门 23 3.1 开始用 Node.js编程 24 3.1.1 Hello World 24 3.1.2 Node.js命令行工具 25 3.1.3 建立HTTP服务器 26 3.2 异步式I/O与事件式编程 29 3.2.1 阻塞与线程 29 3.2.2 回调函数 31 3.2.3 事件 33 3.3 模块和包 34 3.3.1 什么是模块 35 3.3.2 创建及加载模块 35 3.3.3 创建包 38 3.3.4 Node.js包管理器 41 3.4 调试 45 3.4.1 命令行调试 45 3.4.2 远程调试 47 3.4.3 使用Eclipse调试Node.js 48 3.4.4 使用node-inspector调试Node.js 54 3.5 参考资料 55 第4章 Node.js核心模块 57 4.1 全局对象 58 4.1.1 全局对象与全局变量 58 4.1.2 process 58 4.1.3 console 60 4.2 常用工具util 61 4.2.1 util.inherits 61 4.2.2 util.inspect 62 4.3 事件驱动events 63 4.3.1 事件发射器 64 4.3.2 error事件 65 4.3.3 继承EventEmitter 65 4.4 文件系统fs 65 4.4.1 fs.readFile 66 4.4.2 fs.readFileSync 67 4.4.3 fs.open 67 4.4.4 fs.read 68 4.5 HTTP服务器与客户端 70 4.5.1 HTTP服务器 70 4.5.2 HTTP客户端 74 4.6 参考资料 77 第5章 使用Node.js进行Web开发 79 5.1 准备工作 80 5.1.1 使用http模块 82 5.1.2 Express框架 83 5.2 快速开始 84 5.2.1 安装Express 84 5.2.2 建立工程 85 5.2.3 启动服务器 86 5.2.4 工程的结构 87 5.3 路由控制 89 5.3.1 工作原理 89 5.3.2 创建路由规则 92 5.3.3 路径匹配 93 5.3.4 REST风格的路由规则 94 5.3.5 控制权转移 95 5.4 模板引擎 97 5.4.1 什么是模板引擎 97 5.4.2 使用模板引擎 98 5.4.3 页面布局 99 5.4.4 片段视图 100 5.4.5 视图助手 100 5.5 建立微博网站 102 5.5.1 功能分析 102 5.5.2 路由规划 102 5.5.3 界面设计 103 5.5.4 使用Bootstrap 104 5.6 用户注册和登录 107 5.6.1 访问数据库 107 5.6.2 会话支持 110 5.6.3 注册和登入 111 5.6.4 页面权限控制 120 5.7 发表微博 123 5.7.1 微博模型 123 5.7.2 发表微博 125 5.7.3 用户页面 126 5.7.4 首页 127 5.7.5 下一步 129 5.8 参考资料 129 第6章 Node.js进阶话题 131 6.1 模块加载机制 132 6.1.1 模块的类型 132 6.1.2 按路径加载模块 132 6.1.3 通过查找node_modules目录加载模块 133 6.1.4 加载缓存 134 6.1.5 加载顺序 134 6.2 控制流 135 6.2.1 循环的陷阱 135 6.2.2 解决控制流难题 137 6.3 Node.js应用部署 138 6.3.1 日志功能 138 6.3.2 使用cluster模块 140 6.3.3 启动脚本 142 6.3.4 共享80端口 143 6.4 Node.js不是银弹 144 6.5 参考资料 146 附录A JavaScript的高级特性 147 附录B Node.js编程规范 167

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值