主要学习教程: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
查询真实IP
在https://www.ipaddress.com/查询raw.githubusercontent.com的真实IP。
问题一:安装多个版本node,切换node版本后,npm命令失效
解:根据错误信息,查看安装目录发现该该版本npm没有安装成功,卸载后再重新安装即可
问题二:使用nvm管理node版本时,各个版本下公用npm安装的插件问题
解:http://www.cnblogs.com/webwy/p/6867000.html,当然这也有一些问题,安装的包可能与当前的node版本不适用如何实时刷新改动后的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 ,产生断链。