node 学习

1. node 基础

(1)node定义:JS是脚本语言,脚本语言都需要一个解析器才能运行。对于写在HTML页面里的JS,浏览器充当了解析器的角色。而对于需要独立运行的JS,NodeJS就是一个解析器。

每一种解析器都是一个运行环境,不但允许JS定义各种数据结构,进行各种计算,还允许JS使用运行环境提供的内置对象和方法做一些事情。例如运行在浏览器中的JS的用途是操作DOM,浏览器就提供了document之类的内置对象。而运行在NodeJS中的JS的用途是操作磁盘文件或搭建HTTP服务器,NodeJS就相应提供了fs、http等内置对象

(2)模块

编写稍大一点的程序时一般都会将代码模块化。在NodeJS中,一般将代码合理拆分到不同的JS文件中,每一个文件就是一个模块,而文件路径就是模块名。

在编写每个模块时,都有require、exports、module三个预先定义好的变量可供使用

1
2
3
4
5
(i)require函数用于在当前模块中加载和使用别的模块,传入一个模块名,返回一个模块导出对象。模块名可使用相对路径(以./开头),或者是绝对路径(以/或C:之类的盘符开头)。另外,模块名中的.js扩展名可以省略。

(ii)exports对象是当前模块的导出对象,用于导出模块公有方法和属性。别的模块通过require函数使用当前模块时得到的就是当前模块的exports对象。

(iii)通过module对象可以访问到当前模块的一些相关信息,但最多的用途是替换当前模块的导出对象。例如模块导出对象默认是一个普通对象,如果想改成一个函数的话,

(3)模块初始化

一个模块中的JS代码仅在模块第一次被使用时执行一次,并在执行过程中初始化模块的导出对象。之后,缓存起来的导出对象被重复利用。

2 node 安装

(1)nvm 管理node版本
安装方法:

1. git clone https://github.com/creationix/nvm.git

2. 配置终端启动自动执行 source ~/git/nvm/nvm.sh (在 ~/.bashrc, ~/.bash_profile, ~/.profile, 或者 ~/.zshrc 中添加上述命令)重新启动终端。

3.安装任意版本 nvm install xxx

4.使用任意版本 nvm use xxx

5.查看所有node版本     nvm ls

6.安装最新稳定版本 nvm install stable

7.使用最新稳定版本  nvm use stable

8.安装最新版本  nvm install unstable

9.使用最新版本 nvm run unstable --version

10.使用系统版本 nvm use system

11.设置默认版本 nvm alias default vxxx

12.删除指定版本 nvm uninstall v6.6.0

(2) 快速生成 package.json

命令 npm init

(3) 安装依赖

npm install --save PACKAGE_NAME
npm install --savr-dev PACKAGE_NAME
npm install --save PACKAGE_NAMR -g (全局安装exp:mocha)

(4) koa 运行命令为

node --harmony xxx.js

(5) error: describe is not defined 需要安装 mocha 运行命令

mocha app