Node.js项目实战-构建可扩展的Web应用(第一版): 1 安装Node.js及相关要点
2018-01-10 16:09
1036 查看
https://github.com/azat-co/practicalnode
你将学会:
使用Express.js MongoDB和Jade模板引擎构建Web应用
介绍Jade和Handlebars的各种功能
利用MongoDB控制台操作MongoDB数据库中的数据
使用Mongoskin和Mongoose ORM库操作MongoDB数据库
使用Express.js 4和Hapi.js构建REST API服务
通过Mocha、Expect和TravisCI为Node.js web服务做测试用例
基于token和session的身份验证
使用Everyauth库实现第三方(Twitter)OAuth授权认证
使用Socket.IO和DerbyJS库构建WebSocket应用
利用Redis、Node.js domains模块,以及cluster库等实践和技巧来准备生成环境的代码
利用Git将应用代码部署到Heroku平台
在AWS云服务上部署Node.js应用时需要安装的组件
在AWS云服务实例上配置Nginx、Upstart、Varnish和其他工具模块
编写你自己的Node.js模块并将它们发布到NPM平台上去
通过Nava进行多版本安装:
通过NVM进行多版本安装:
检查安装:
node -v
npm -v
控制台(REPL):同许多其他平台或语言(如Java, Python等)类似,Node.js也有自己的虚拟运行环境:REPL。可以使用它来执行任何Node.js或JavaScript代码。甚至还可以引入模块和使用文件系统,还包括控制nodecopters和调试远程服务器等。
$ node
> 1 + 1
2
和浏览器中对ECMAScript的实现有一些比较细微的差别,但是总体上没有什么区别。
弱类型: 只有String、Number、Boolean、Undefined、Null、RegExp、其他都是object。
Buffer:做数据存储非常有效,推荐使用它。
对象字面量:
函数:是一等公民,函数也是对象,如 var obj = function() { ... };
obj.boo = 1,如果没有return,返回undefined
数组:也是对象,它从Array.prototype中继承了一些特殊的方法。
原型特性:JavaScript中没有类的概念,对象可以直接从其他对象处继承,称之为原型继承
编码规范:
Node.js的全局变量和保留字:JavaScrtipt中,遗漏了var,就会变成全局变量,有window对象,而Node.js中却没有,但有process(进程)、global(访问全局)、module.exports和exports(模块)
__dirname与process.cwd的对比:全局变量文件的绝对路径和运行脚本进程的绝对路径。
浏览器API辅助工具:String, Array和Math对象等。
核心模块:http, util, querystring, url, fs。可通过NPM安装其他模块
便捷的Node.js工具:Cryto(随机生成器)
在Node.js中读写文件:
Node.js中的数据流:是指应用在处理数据的时候还可以同时接收数据。默认使用buffer来处理。
使用NPM安装Node.js模块:npm同Git非常类似,通过遍历工作目录来找到当前项目。使用package.json文件和node_modules文件夹进行本地模式安装,安装命令为npm install name。NPM最大的优势在于它的所有依赖都是本地模式安装的,所以如果模块A依赖于模块B v1.3,而模块C依赖于模块B v2.0,模块A和模块C分布具有B不同版本的本地副本,彼此互不影响。事实证明,这个策略比Ruby那种默认全局模式安装的策略好多了。最佳实践是:如果你的项目需要在其他应用中使用的模块,那么在Git版本仓库中就不要再包含node_modules文件夹了。然而,如果是要发布应用,那么推荐你在项目中包含node_modules文件夹,这是为了避免依赖更新所导致的程序崩溃。
优化Node.js中的回调函数:
WebStorm是一个不错的选择
你将学会:
使用Express.js MongoDB和Jade模板引擎构建Web应用
介绍Jade和Handlebars的各种功能
利用MongoDB控制台操作MongoDB数据库中的数据
使用Mongoskin和Mongoose ORM库操作MongoDB数据库
使用Express.js 4和Hapi.js构建REST API服务
通过Mocha、Expect和TravisCI为Node.js web服务做测试用例
基于token和session的身份验证
使用Everyauth库实现第三方(Twitter)OAuth授权认证
使用Socket.IO和DerbyJS库构建WebSocket应用
利用Redis、Node.js domains模块,以及cluster库等实践和技巧来准备生成环境的代码
利用Git将应用代码部署到Heroku平台
在AWS云服务上部署Node.js应用时需要安装的组件
在AWS云服务实例上配置Nginx、Upstart、Varnish和其他工具模块
编写你自己的Node.js模块并将它们发布到NPM平台上去
1.1 安装Node.js和NPM
http://nomdejs.org/通过Nava进行多版本安装:
通过NVM进行多版本安装:
检查安装:
node -v
npm -v
控制台(REPL):同许多其他平台或语言(如Java, Python等)类似,Node.js也有自己的虚拟运行环境:REPL。可以使用它来执行任何Node.js或JavaScript代码。甚至还可以引入模块和使用文件系统,还包括控制nodecopters和调试远程服务器等。
$ node
> 1 + 1
2
和浏览器中对ECMAScript的实现有一些比较细微的差别,但是总体上没有什么区别。
1.2 加载Node.js脚本
$ node 文件名1.3 Node.js的基础和语法
它建立在 Google Chrome的V8引擎和它的ECMAScript之上,所以同JavaScript是非常类似的。弱类型: 只有String、Number、Boolean、Undefined、Null、RegExp、其他都是object。
Buffer:做数据存储非常有效,推荐使用它。
对象字面量:
函数:是一等公民,函数也是对象,如 var obj = function() { ... };
obj.boo = 1,如果没有return,返回undefined
数组:也是对象,它从Array.prototype中继承了一些特殊的方法。
原型特性:JavaScript中没有类的概念,对象可以直接从其他对象处继承,称之为原型继承
编码规范:
Node.js的全局变量和保留字:JavaScrtipt中,遗漏了var,就会变成全局变量,有window对象,而Node.js中却没有,但有process(进程)、global(访问全局)、module.exports和exports(模块)
__dirname与process.cwd的对比:全局变量文件的绝对路径和运行脚本进程的绝对路径。
浏览器API辅助工具:String, Array和Math对象等。
核心模块:http, util, querystring, url, fs。可通过NPM安装其他模块
便捷的Node.js工具:Cryto(随机生成器)
在Node.js中读写文件:
Node.js中的数据流:是指应用在处理数据的时候还可以同时接收数据。默认使用buffer来处理。
使用NPM安装Node.js模块:npm同Git非常类似,通过遍历工作目录来找到当前项目。使用package.json文件和node_modules文件夹进行本地模式安装,安装命令为npm install name。NPM最大的优势在于它的所有依赖都是本地模式安装的,所以如果模块A依赖于模块B v1.3,而模块C依赖于模块B v2.0,模块A和模块C分布具有B不同版本的本地副本,彼此互不影响。事实证明,这个策略比Ruby那种默认全局模式安装的策略好多了。最佳实践是:如果你的项目需要在其他应用中使用的模块,那么在Git版本仓库中就不要再包含node_modules文件夹了。然而,如果是要发布应用,那么推荐你在项目中包含node_modules文件夹,这是为了避免依赖更新所导致的程序崩溃。
优化Node.js中的回调函数:
1.4 Node.js的集成开发环境(IDE)和代码编辑器
Sublime TextWebStorm是一个不错的选择
1.5 监听文件变化
当文件内容发生变化时重启服务,因为Node应用存储在内存中。可以使用forever、node-dev、nodemon、supervisor、up等管理1.6 如何调试Node.js项目
使用Node.js的HTTP模块来创建一个简单服务器:hello.jsvar http = require('http') http.createServer(function(req, res) { res.writeHead(200, {'Conten-Type':'text/plain'}); res.end('Hello World\n'); }).listen(1337, '127.0.0.1'); console.log('Server running at ' target='_blank'>http://127.0.0.1:1337/');[/code] 调试Node.js程序:Core Node.js Debugger(没有图形)、Node Inspector(Chrome开发者工具)、WebStorm和其他集成开发环境
核心Node.js调试:可以在代码中加入debugger;,并使用$ node debug program.js
使用Node Inspector来调试:npm install -g node-inspector; node-inspector; $ node --debug hello.debug.js; 打开http://127.0.0.1:8080/debug?port=5858 ;
相关文章推荐
- Node.js项目实战-构建可扩展的Web应用(第一版): 2 使用Express.js 4创建Web应用程序
- Node.js项目实战-构建可扩展的Web应用(第一版):11 部署Node.js应用
- Node.js项目实战-构建可扩展的Web应用(第一版): 7 使用ORM类库Mongoose提升你的Node.js数据
- Node.js项目实战-构建可扩展的Web应用(第一版): 6 在Node.js应用中使用session和OAuth进行用户认证和授权
- Node.js项目实战-构建可扩展的Web应用(第一版):3 Node.js基于Mocha的测试驱动开发和行为驱动开发
- Node.js项目实战-构建可扩展的Web应用(第一版):8 使用Express.js和Hapi构建Node.js REST API服务
- Node.js项目实战-构建可扩展的Web应用(第一版):9 WebSocket,Socket.IO和DerbyJS的实时应用程序
- Node.js项目实战-构建可扩展的Web应用(第一版): 4 模板引擎:Jade和Handlebars
- Node.js项目实战-构建可扩展的Web应用(第一版):10 为Node.js应用上线做准备
- Node.js项目实战-构建可扩展的Web应用(第一版): 5 MongoDB、Mongoskin特性
- Node.js项目实践:构建可扩展的Web应用
- 在Mac OS上安装使用Node.js的项目自动化构建工具Gulp
- Node.js的项目构建工具Grunt的安装与配置教程
- 第1章-安装Node.js及相关要点-1.9.Node.js集成开发环境和代码编辑器
- Node.js的项目构建工具Grunt的安装与配置教程
- 第1章-安装Node.js及相关要点-1.10.监听文件变化
- 第1章-安装Node.js及相关要点-1.1.安装Node.js
- VUE2.0的简单入门(一)-安装node.js环境搭建与项目构建
- 第1章-安装Node.js及相关要点-1.2.Node.js的基础和语法
- 第1章-安装Node.js及相关要点-1.3.Node.js的全局变量和保留字