Node.js项目实战-构建可扩展的Web应用(第一版): 1 安装Node.js及相关要点

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平台上去

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 Text

     WebStorm是一个不错的选择

1.5 监听文件变化

     当文件内容发生变化时重启服务,因为Node应用存储在内存中。可以使用forever、node-dev、nodemon、supervisor、up等管理

1.6 如何调试Node.js项目

      使用Node.js的HTTP模块来创建一个简单服务器:hello.js

var 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 http://127.0.0.1:1337/');
        调试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 ;


你可能感兴趣的:(后端)