Node.js: 深入浅出Nodejs读书笔记

今天终于把朴灵老师写的《深入浅出Node.js》给学习完了, 这本书不是一本简单的Node入门书籍,它没有停留在Node介绍或者框架、库的使用层面上,而是从不同的视角来揭示Node自己内在的特点和结构。建议 有一定Node基础或者做过Node方面的小项目的同学阅读,看完以后你的思维会有很奇特的碰撞,我看的时候就常常会有这样的想法:“哦,原来这个功能是 这样实现的哦”。下面这篇文章是我第二次阅读《深入浅出Node.js》的一些学习记录,并且通过百度脑图这个工具来画出思维导图,每天将自己的学习总结写在这篇文章下面。图片文字太小可以右键从新标签页打开图片,然后点击就可以放大显示。 新增原始文件脑图地址,这样大家就可以直接到脑图去看思维导图 Node简介 这一章简要介绍了Node,从中可以了解Node的发展历程及其带来的影响和价值。 为什么叫Node?起初,Ryan Dahl称他的项目为web.js,就是一个Web服务器,但是项目的发展超过了他当初单纯开发一个Web服务器的想法,变成构建网络应用的一个基本框 架,这样可以在它的基础上构建更多的东西,诸如服务器、客户端、命令行工具等。Node发展为一个强制不共享任何资源的单线程、单进程系统,包括十分适宜 网络的库,为构建大型分布式应用程序提供了基础设施,其目标也是成为一个构建快速、可伸缩的网络应用平台。它自身非常简单,通过通信协议来组织很多 Node,非常容易通过扩展来达成构建大型网络应用的目的。每一个Node进程都构成这个网络应用中的一个节点,这是它名字所含意义的真谛。 脑图 Node.js: 深入浅出Nodejs读书笔记 模块机制 这一章主要介绍Node的模块机制,从中了解到Node如何实现CommonJS模块和包规范的。在这一章中,我们详细的解释了模块在引用过程中的编译、加载规则。另外,我们还能读到更深度的关于Node自身源代码的组织架构。 CommonJS规范为JavaScript定制了一个美好的愿景—希望JavaScript能够在任何地方运行。脑图 Node.js: 深入浅出Nodejs读书笔记… Read More

Node.js: 认识流stream

流是Node.js中一个非常重要的概念, 也是Node.js之所以适用于I/O密集型场景的重要原因之一。 流是Node.js移动数据的方式,流可以是可读的和/或可写的。在Node.js中很多模块都使用到了流, 包括HTTP和fs模块,本文将用尽可能简单的方式为你介绍Node中流的概念。 流 Stream 事实上,流通常用于将程序连接在一起。流可以被读和写。被流连接在一起的程序通常很小,并且只专注于做一件事。 你可能经常在项目中使用Gulp来做项目的代码构建,那么在使用过程中,你很可能碰到过类似下面的错误。 错误大概是这样个的: stream.js:94 throw er; // Unhandled stream error in pipe. 当初次碰到这种错误的时候,你可能和我一样对流的概念毫无头绪,好在我们可以借助Google来寻找答案。 一个最佳的开始是用Google搜索“node… Read More

Linux Shell脚本入门教程系列之(十七) Shell文件包含

本文是Linux Shell系列教程的第(十七)篇,更多Linux Shell教程请看:Linux Shell系列教程 通过文件包含,可以引用其他文件的内容,也可以将复杂内容分开,使程序结构更加清晰。 所以高级语言都支持文件包含或者包的引用,Shell当然也支持,接下来就为大家介绍下Shell文件包含的相关知识。 一、Shell文件包含格式 Shell文件包含的格式如下,使用点号“.”+文件名包含: . filename 或者source+文件名: source filename 二、Shell文件包含示例 Shell文件包含的例子如下: num1.sh文件如下: num1=1 num2=2 num2.sh文件如下: #!/bin/sh… Read More

Linux Shell脚本入门教程系列之(十六) Shell输入输出重定向

本文是Linux Shell系列教程的第(十六)篇,更多Linux Shell教程请看:Linux Shell系列教程 Shell中的输出和输入的重定向是在使用中经常用到的一个功能,非常实用,今天就为大家介绍下Shell输入输出重定向的相关知识。 一、Shell输入输出重定向概述 在了解重定向相关知识之前,我们先来看看Linux的文件描述符。 Linux的文件描述符可以理解为linux跟踪打开文件,而分配的一个数字,这个数字有点类似c语言操作文件时候的句柄,通过句柄就可以实现文件的读写操作。 用户可以自定义文件描述符范围是:3-max,max跟用户的ulimit –n 定义数字有关系,不能超过最大值。 linux启动后,会默认打开3个文件描述符,分别是: 1)标准输入standard input——0 2)正确输出standard output——1 3)错误输出:error output——2 对于所有运行的Shell命令,都会有默认3个文件描述符。 在一个Shell命令执行时,会先有一个输入:可以从键盘输入,也可以从文件得到… Read More

用Vim编程——配置与技巧

本文介绍如何用强大的文本编辑器 Vim编程。只要配置得当,效果堪比一个IDE。 配置 基本配置: "开启语法高亮 syntax on "依文件类型设置自动缩进 filetype indent plugin on "显示当前的行号列号: set ruler "在状态栏显示正在输入的命令 set showcmd "关闭/打开配对括号高亮 "NoMatchParen… Read More

无插件Vim编程技巧

相信大家看过《简明Vim教程》也玩了《Vim大冒险》 的游戏了,相信大家对Vim都有一个好的入门了。我在这里把我日常用Vim编程的一些技巧列出来给大家看看,希望对大家有用,另外,也是一个抛砖引玉的过 程,也希望大家把你们的技巧跟贴一下,我会更新到这篇文章中。另外,这篇文章里的这些技巧全都是vim原生态的,不需要你安装什么插件。我的Vim的版本是7.2。 浏览代码 首先,我们先从浏览代码开始。有时候,我们需要看多个文件,所以,传统的做法是,我们开多个tty终端,每个tty里用Vim打开一个文件,然后来回切换。这很没有什么效率。我们希望在一个Vim里打开多个文件,甚至浏览程序目录。 浏览目录的命令很简单:(你也可以直接vim一个目录) :E 注意,是大写。于是,你会看到下面这样的界面: 无插件Vim编程技巧 这个界面中,你可以用 j, k 键上下移动,然后回车,进入一个目录,或是找开一个文件。你可以看到上面有一堆命令: 【 – 】 到上级目录 【D】删除文件(大写) 【R】改文件名(大写) 【s】对文件排序(小写)… Read More

AngularJS jQuery 共存法则

寻找正确的方法,如何在AngularJS里使用jQuery 一、为什么还是要使用jquery 在使用Angular一段时间后,发现还是很难逃脱jquery 插件的魔掌。尽管对于angular,内置了jQLite. 但是为了更好的实现功能,不可避免的要使用一些jquery的插件。 二、如何在Angular里使用jquery 1. 如果使用jquery的插件,我们不应该把对应的code放到controller里面。我们应该创建directive,然后通常把jquery的code放在 link里面 2. 当我们引入jquery 插件库的时候,我们要保证是在最后倒入的,在angularjs,controllers,services,filters结束后引入 三、实践Plunker 如何在angular里使用jcrop HTML <!DOCTYPE html> <html ng-app="angularjs-starter"> <head… Read More

零基础 Amazon Web Services (AWS) 入门教程 (列表)

在 Amazon Web Services 上托管 Web 应用程序 Web 应用程序 是指用户通过 Web 浏览器或专门的 Web 客户端访问的任何软件。Web 应用程序通常具有逻辑层级结构。例如,常用结构使用三个层级。第一层是 Web 浏览器,它负责显示用户界面。中间层是应用程序服务器,它负责提供应用程序功能。第三层是数据库服务器或文件系统,它负责存储数据。 此教程指导您逐步完成在 AWS 基础设施上托管可扩展且可靠的… Read More

零基础 Amazon Web Services (AWS) 入门教程图文版(四)

自上一篇之后,5天过去了,这篇文章总算是挤出来了… 其实看不看无所谓啦,都说了WDCP非常适合小白,随便折腾。要是折腾的时候遇到什么问题,欢迎留言探讨~ 五、新建站点 登录WDCP后台,首次登录会提示修改管理员密码,一定不要偷懒,然后在左侧网站管理——新建整站里新建站点: 零基础 Amazon Web Services (AWS) 入门教程图文版(四) 接下来要填的只有几个地方,如下图,其他保持默认即可。 零基础 Amazon Web Services (AWS) 入门教程图文版(四) 中间的保持默认… 零基础 Amazon… Read More

零基础 Amazon Web Services (AWS) 入门教程图文版(三)

原则上WDCP安装好了,就可以直接使用了,FTP、MySQL什么的应有尽有。但是本站Amazon AWS —— 免费的午餐不好吃一文中说到过这个问题,直接用WDCP的MySQL会导致EBS的I/O急剧增加,最终导致被扣费,所以这篇文章介绍AWS提供的云端数据库:RDS 四、启用RDS 所谓RDS,其实也相当于一台云端的主机,所以启用过程和EC2大同小异。这次博主还发现,RDS的新建向导优化了很多,所以默认选中的东西是不会让免费用户掏钱的。但为了从一而终,这一篇也详细一点吧… 创建RDS实例 从AWS控制台进入RDS(蓝色图标里面找)的控制台,还没有RDS实例的用户会看到下图所示的新建向导: 零基础 Amazon Web Services (AWS) 入门教程图文版(三) 老规矩,点蓝色按钮,然后进入第一步,选择数据库引擎: 零基础 Amazon Web Services (AWS)… Read More