您的位置:首页 > Web前端 > Node.js

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

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 ' 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 ;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐