什么是node?
- 不是js文件,也不是js框是Server side Javascript runtime,服务端的一个js运行时
- 目前我们js是运行在浏览器内核中
- nodejs就是一个运行环境
为什么node选择js - node中只能运行ecmascript 不能运行bom dom
- js本身不能上传文件,nodejs提供了一些api 提供网络文件之类的操作。
- nodejs:目前有两个分支
- nodejs 官方版本 要求尽善尽美
- io.js 是社区的产物,迭代非常快,社区推进非常快
- 15年两者合并,发布node第一个正式版 4.0,迭代速度又慢了
- node 5.x 的分支==io.js
nvm (node version manager) - 因为node版本比较多,开发人员可能依赖很多版本
- node控制台环境的学名叫:repl环境 很多软件都有
- 通过nvm 可以在不同的版本里来回切换
- 用途:
1.开发应用程序
2.做动态网站
3.开发提供数据的服务端api
4.个人觉得nodejs给前端乃至整个前端开发行业带来一场工业革命
结束刀耕火种,实现自动化
系统变量和用户变量
- 环境变量就是操作系统提供的系统级别用于存储变量的地方
- 系统变量指的是所用当前系统用户共享的变量
- 自己的电脑一般只有一个用户
- 建议将自己配置的环境变量放在用户变量中,用户变量比较干净
环境变量的变量名不区分大小写 - 命令
.. :返回上一次
cd :切换目录
clear :清空控制台(power shell 里才能用,win7以上版本自带power shell)
在cmd中是:cls
什么是npm - node package manager
- node应用程序依赖包的管理工具
- 安装卸载更新之类的操作
为什么要使用npm - 包很多
- 场景:我需要用一个A,A依赖B,B依赖C
- 常见的包管理工具都有循环依赖的功能
- 你只需记住你要什么东西
4.异步操作 - node采用chrom v8 引擎处理,javascript 脚本,v8 最大特点就是单线程运行,一次只能运行一个任务。
- node 大量采用异步操作(asynchronous operation),即任务不是不是马上执行,而是插在任务队列的尾部,等到前面的任务运行完后再执行
- 提高了代码的响应能力
- 所有回调函数都是错误优先的
- 异步操作无法通过try catch 捕获异常
- 回调会出现嵌套过深,造成死循环得问题,不容易阅读,不容易调试,不容易维护
5.node中的模块化结构
node实现CommonJS规范,所以可以使用模块化的方式组织代码结构