什么是 Node.js?
(1)Node.js一门后端语言;
(2)基于Chrome V8引擎的javascript运行环境;
除此之外:还有其他引擎,单片机,actionscript就是其中之一;
(3)Node.js有两大特征:
- 事件驱动;
1).事件的定义 ( 发布 ) ;
2).事件的触发 ( 订阅 ) ; - 非阻塞式 I/O 模型;
1).非阻塞:执行一个任务时,不需要等待这个任务执行完成,就可以去执行其他的任务;
1).I / O:磁盘文件操作 / 数据库数据操作(增删改查);
总结:
Q:非阻塞,但是javascript是单线程,要想实现非阻塞,必须放在任务队列,怎 么放入任务队列?
A:javascript中异步操作;
Q:js中如何实现异步操作?
A:①回调函数;
②Promise;
③gengator函数;
④asycn函数;
⑤Node.js自带的 nextTick、setImmediate;
⑥别人封装的 async.js 库;
Node.js的包管理器;
(1)npm:全球最大的开源生态系统(国外的);
(2)cnpm:淘宝镜像(国内的);
(3)yarn:比较流行的包管理器;
Node.js的版本问题;
(1)Node.js有两个版本,一个是测试版,一个是稳定版(如图,蓝色指向的是稳定版,红色指向的是测试版);
(2)业内规定:
1).版本为单数:测试版,bate版本;
2).版本为偶数:稳定版;
Node.js安装;
- 官网下载镜像直接安装(只能使用一个版本);
- 使用nvm来安装(nvm可以管理多个Node.js版本);
安装前卸载本地的Node.js;
nvm安装时注意事项:
1).nvm安装时注意环境变量;
2).注意nvm文件夹中"setting.txt"的修改,加入下面两行代码;
node_mirror: https://npm.taobao.org/mirrors/node/
npm_mirror: https://npm.taobao.org/mirrors/npm/
3).nvm安装后文件夹中可能出现 " temp文件夹 " ;同时,bash: npm: command not found
;如果出现,那么再去Node.js官网再下一个Node.js,再去使用npm;
Node.js使用;
- 命令终端使用;
1).Node.js的全局对象是global;javascript的全局对象是window;
2).直接在命令终端中输入node,然后回车,就会出现 ’ > ’ 标识,然后就可以写js语法;
3).命令终端的退出:ctrl + c *twice OR .exit;
- 文件使用;
1).命令行键盘 tab 键自动补全文件名称;
2).执行文件 / 运行文件:
$ node filename.js
3).自动监听Node.js文件 / 自动刷新工具;
nodemon file.js;
supervisor
<1>npm安装:
-$ npm install nodemon -g;
-$ npm install supervisor -g;
<2>cnpm安装:
-$ cnpm install nodemon -g;
-$ cnpm install supervisor -g;
<3>yarn安装:
-$ yarn add nodemon global;
-$ yarn add supervisor global;
Node.js服务器;
- web服务器(静态服务器);
- api服务器(动态服务器),数据接口;