《Node.js项目实践》章节试读

出版日期:2015-6
ISBN:9787121259036
作者:【美】Azat Mardan(阿扎.马尔丹) 著
页数:296页

《Node.js项目实践》的笔记-第31页 - 第1章 安装Node.js及相关要点

如何使用 nodeJS?
1.管理员 node.js command prompt
2.cmd.exe 下直接执行也可以
node -v
npm -v
.
PERL,Read-Eval-Print Loop
它有自己的虚拟运行环境,输入 node 并回车
会打开控制台,当提示符从$(window下依然是>)变成>(不同 shell 可能会有不同的提示符)就可以输入你想执行的任何 js 或 nodejs 代码了。此处,类似于 Chrome 的开发工具中的控制台。ctrl+c 退出
.
加载脚本
$ node test.js //直接执行 【文件的默认路径-就是当前目录 pwd】
$ node -e "console.log('anjia')" // -e参数 它允许我们直接执行一些 js 或 nodejs 命令
.
.
nodeJS 的基础和语法
nodeJS 建立在 Google chrome 的 V8 引擎和它的 ECMAScript 之上。所以,它的语法和前端的 JS 是非常类似的。
nodeJS 和浏览器中对 ECMAScript 的实现有一些比较细微的差别,但总体而言,两者没啥区别。
.
自动类型转换:
JS 中的基本类型://有待确定,根据权威指南
String Number Boolean
Undefined Null
RegExp
Object
.
Buffer - nodeJS 特殊的数据类型
buffer,做数据存储非常有效 eg. 从文件系统中读取内容 or 接受网络包内容等
.
.
nodeJS 和 javascript 的主要区别
虽然是同一个标准下的模型,它两间的主要区别:
1.nodeJS 进程相关信息:每一个运行中的 nodeJS 脚本本质上都是一个进程
eg.
输出当前机器上所有运行的nodeJS程序
获取同一个进程的相关的有用信息
node -e "console.log(process.pid)"
.
pid: process id 进程 id
cwd: current work direction 当前工作目录
.
2:在全局对象上不相同
(1)JS 的全局是 window,当没写 var 时,变量会默认为全局变量
(2)nodeJS 使用了不同的设计方法,它默认所有的东西都是本地的
某种意义上
window = global(全局对象) + process(进程)
用来展现 web 页面中的 DOM 中的 document对象在 nodeJS 中不会存在的啦
nodeJS 中还有:module.exports 和 exports
.
3:导入和导出模块
详见博客的模块化编程的介绍
http://anjia.github.io/2015/06/23/js_module_2_CommonJS/
.
.
nodeJS 的核心模块,轻量的-被有意地控制在很小的体积
其他的模块可以通过 npm 来注册安装
.
核心模块,轻量的,主要有:
1.http: nodeJS 从 HTTP 服务器获取相应内容
2.util:模块提供了 调试用的工具方法
3.querystring:模块提供了 处理查询字符串的工具
4.url:模块提供了 URL 的相关处理和转化
5.fs:模块主要处理文件系统相关的操作,比如读写文件等。所有的方法都有同步和异步两种操作
使用核心模块不需要安装,只要需要的时候直接 require() 进来就可以了
.
非核心的模块:
如何编写自己的模块:
非常重要的工具,如:
(1)Crypto:包含随机生成器、MD5、HMAC-SHA1 和其他一些算法
(2)Path:处理系统路径(不同的文件分隔符)
(3)String decoder:将 buffer 或字符串类型数据解码
.
.
npm 最大优势在于:它的所有依赖都是本地模式安装
【Q:不禁感叹-它是不是有个所有的模块的 url 配置文件-然后要谁就直接-才去下载?】
作为初学者,我们只需要知道,用以下两个来对模块进行本地模式安装:
(1)package.json 文件
(2)node_modules 文件夹( 管理依赖啊 依赖更新啊)
安装命令是 npm install name 就可以了~~
.
.
浏览器 API 工具
nodeJS 中许多工具函数都来自于浏览器端 JS 的应用程序接口 (API)
eg.
Array 的方法 join() pop() slice() 等等;
Math 的方法 random();
String 的方法 substr() indexof();
还有 setInterval() setTimeout() foreach() console() 等等
.
在 nodeJS 中读写文件:
nodeJS 的数据流:数据流-应用在处理数据的的时候还可以同时接收数据(适用于处理超大数据集合 eg.视频处理、数据库迁移)
--使用流输出二进制文件内容的基本例子
--默认情况下,nodeJS 使用 buffer 来处理流。
.
回调代码可以用事件的 emit 或者 promise的方式来替代 or 直接使用异步库
使用 nodeJS 的 HTTP 模块来创建一个简单的服务器
.
nodeJS 的调试
1.有以下工具:
Core NodeJS Debugger:没有图形化用户接口的精简工具
Node Inspector:Google Chrome开发者工具的接口
WebStorm 和其他集成开发环境一起
.
2.核心nodeJS调试:
console.log()
debugger;//
并且使用 $ node debug program.js //来启动调式进程
主要的调试命令:
(1)next, n: 单步执行
(2)cont, c: 继续执行,直到遇到下一个断点 continue
(3)step, s: 单步执行并进入函数
(4)out, o: 才函数中跳出
(5)watch(expression): 把表达式 expression 加入监视列表
.
nodeJS的一个重要作用:创建 web 应用
它在网络上的繁荣发展,得益于它的异步特性和它的内置模块( net 和 http )
.
执行,在浏览器中打开 http://localhost:1337
或者再终端/命令行中执行 $ curl "http:://localhost:1337"
.
nodeJS 应用是存储在内存中的
所以修改了源码后,必须重启进程(也就是 node)才能看到变化
当然已经有工具实现了自动化-它们通过 fs 模块的方法监听,当文件内容发生变化时就重启服务器。eg.forever node-dev nodemon supervisor
.
我们都知道,ExpressJS 在默认情况下每次都会为新请求重新加载模板文件
因此,一定不要重启服务。不过我们可以通过设置 view cache 来缓存模板(更多的设置)
.
$ node -help //帮助


 Node.js项目实践下载


 

外国儿童文学,篆刻,百科,生物科学,科普,初中通用,育儿亲子,美容护肤PDF图书下载,。 零度图书网 

零度图书网 @ 2024