NodeJs

主要学习教程:http://www.runoob.com/nodejs/nodejs-tutorial.html

下载地址:https://nodejs.org/en/

中文网:http://nodejs.cn/

淘宝镜像:http://npm.taobao.org

nodeJS产生的背景:解决高并发

Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境。 
Node.js 使用了一个事件驱动、非阻塞式 I/O 的模型,使其轻量又高效。 
Node.js 的包管理器 npm,是全球最大的开源库生态系统。


浏览器两个引擎:1、html、css解析引擎 2、js解析引擎

安装后,打开dos输入node进入node环境 (退出 ctrl c c)

编译某个js文件:

node index.js    (或 node index)

nodeJs 使用 CommonJS 规范

什么是 Node.js

Node.js 可以解析JS代码(没有浏览器安全级别的限制)提供很多系统级别的API,如:
- 文件的读写
- 进程的管理
- 网络通信
- ……

准备 Node.js

使用nvm (node-version-manage)来安装并维护多个Node.js的版本

参考:http://www.cnblogs.com/kaiye/p/4937191.html

1、项目地址:
https://github.com/creationix/nvm/blob/master/README.md

mac系统安装:curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.6/install.sh | bash

windows安装:

可直接下载,安装包参考:http://blog.csdn.net/tyro_java/article/details/51232458.

项目:https://github.com/coreybutler/nvm-windows/releases

这里下载的是 nvm-setup.zip ,安装后会自动配置环境变量

2、配置加速镜像:

mac系统下(~/.bash_profile, ~/.zshrc, ~/.profile, or ~/.bashrc)添加: 

export NVM_NODEJS_ORG_MIRROR=https://npm.taobao.org/mirrors/node
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" # This loads nvm

windows下配置nvm安装目录(如:D:UsersfanAppDataRoaming vm)中的settings.txt: 

root: d:UsersfanAppDataRoaming
vm
path: d:Program Files
odejs
arch: 64 
proxy: none 
node_mirror: http://npm.taobao.org/mirrors/node/ 
npm_mirror: https://npm.taobao.org/mirrors/npm/
 

3、使用

nvm命令:


#查看nvm命令行
nvm
#查看nvm版本
nvm --version
#安装nodeJs的某个版本
nvm install v7.6.0
#卸载某个版本的nodn
nvm uninstall 4.4.5
#查看当前已安装的nodeJs版本及当前使用的版本
nvm ls
#查看(镜像)源的nodeJs版本列表
nvm ls-remote
#查看lst版本
nvm --lst
#切换nodeJs版本
nvm use v6.11.5
#指定版本运行文件
nvm run v[版本号] [文件名] #如:nvm run 7.6.0 index,v可省略
#更新npm
nvm install-latest-npm

 

 

一些问题:
curl下载nvm时:
Failed to connect to raw.githubusercontent.com port 443
 

查询真实IP

https://www.ipaddress.com/查询raw.githubusercontent.com的真实IP。

修改hosts文件: 199.232.28.133 raw.githubusercontent.com
mac下地址:/etc/hosts
 
 

问题一:安装多个版本node,切换node版本后,npm命令失效

 解:根据错误信息,查看安装目录发现该该版本npm没有安装成功,卸载后再重新安装即可

 问题二:使用nvm管理node版本时,各个版本下公用npm安装的插件问题

解:http://www.cnblogs.com/webwy/p/6867000.html,当然这也有一些问题,安装的包可能与当前的node版本不适用
  
nvm如何自动启用当前项目的对应的node版本?
在工程目录下新建 .nvmrc
内容如:6.11.5
运行: nvm use (会自动查询并切换 .nvmrc中定义的node版本)
 
npm常用命令
 

如何实时刷新改动后的node程序?(热加载)

supervisor

在开发过程中,每次修改代码保存后,我们都需要手动重启程序,才能查看改动的效果。使用 supervisor 可以解决这个繁琐的问题,全局安装 supervisor:

npm install -g supervisor

运行 supervisor --harmony index 启动程序,每当文件修改时会自动热刷新,如下所示:

tips:类似的包还有 nodemon ,pm2

自定义模块引入:

   1 var name = require('./name.js') | var name = require('./name') 

  注:node中commonJS引入模块,其src若不跟路径标识,如 :var name = require('name.js'),则程序会先在当前文件夹第三方模块(node_modules)中查找是否有该模块,若无则到上一层目录查找第三方模块,以此类推,直至根目录,若找不到则再去内置模块中查找,还找不到则报错。因此自定义模块引入时切记加上路径。

  exports = modules.exports,exports只是 modules.exports的引用,因此暴露模块时不能使用 exports = {} ,因为这样exports就不再指向 modules.exports ,产生断链。

  




原文地址:https://www.cnblogs.com/fanlinqiang/p/7741217.html