Node.js基础知识

Posted ruange

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Node.js基础知识相关的知识,希望对你有一定的参考价值。

 

## 什么是Node.js?
1. Node.js是一门后端语言
2. 基于Chrome v8引擎的js运行环境
除此之外:还有其他的引擎: 单片机、actionscript
3. Node.js有两大特征
1. 事件驱动
1. 事件的定义(发布)
2. 事件的触发(订阅)
2. 非阻塞式 I/O 模型
1. 非阻塞 : 执行一个任务时,不需要等待这个任务执行完成,就可以去执行其他任务
2. I/O: 磁盘文件操作 / 数据库数据操作
总结:
问题: 非阻塞,但是js是单线程,要想实现非阻塞,必须将任务放到任务队列,任务队列如何放?
解决: js中异步操作
问题: js中如何实现异步操作
解决:
1. 回调函数 √
2. Promise
3. gengator函数
4. async函数
5. Node.js自带的 nextTick setImmediate
6. 别人封装的 async.js 库
## Node.js的包管理器
NPM: 全球最大的开源生态系统( 国外的 )
cnpm 淘宝镜像( 国内的 )
yarn 流行
npm && yarn 全部要配置国内镜像 ( 百度关键字: yarn国内镜像 )
## Node.js的版本问题
1. Node.js有两个版本, 一个是测试版, 一个是稳定版,造成;两个版本的原因是: 有两个团队
2. 业内规定:
1. 版本的单数是: 测试版 bate版本
2. 版本的偶数是: 稳定版
## Node.js 安装
安装方式有两种:
1. 官网下载镜像直接安装 ( 只能使用一个版本 )
2. 使用 nvm 来安装 ( nvm可以管理多个Node.js版本 )
> nvm有坑: nvm安装有难度
- nvm安装: https://github.com/coreybutler/nvm-windows/releases (下载第三个 nvm-setup.zip)
- nvm安装前先卸载本地的Node.js
- 问题: 如果报错 nvm命令没找到, 就是你的系统环境变量没有自动生成, 所以你要手动配置
- https://blog.csdn.net/qq_27626333/article/details/77857223
3. 要求: Node.js安装最低版本也要8.9以上
## Node.js使用
1. 命令终端使用
2. 文件使用
### 1. 命令终端
- Node.js的全局对象是 global ; javascript的全局对象是 window
- 直接在命令终端中输入node,然后回车,就会出现 ‘>‘ 标识,然后就可以写js语法了
- 命令终端退出: Ctrl + c 两次
### 2. 文件型使用
- 命令行键盘 tab 键 自动补全文件名称
- 执行文件/运行文件:
`$ node 文件名称.js `
- 自动监听node.js文件/ 自动刷新工具
- nodemon √
- supervisor
- 自动监听工具的安装
- npm
`$ npm install nodemon -g `
`$ npm install supervisor -g `
- cnpm
`$ cnpm install nodemon -g `
`$ cnpm install supervisor -g `
- yarn
`$ yarn add nodemon global`
`$ yarn add supervisor global`
## Node.js服务器
Node.js服务器有两种
1. web服务器( 静态服务器 )
2. api服务器( 动态服务器 ) 数据接口
### Node.js web服务器
```
1.引入模块
var http = require(‘http‘);
var hostName = localhost;
var port = 8000;
2.创建http请求
http.createServer((req,res)=>{
3.想后台发送数据

/*设置头部*/
res.writeHead(200,{
‘content-type‘:‘text/html;charset=utf8‘
})

res.write(‘<h1> hello Node.js </h1>‘);
res.end();
4.监听数据
}).listen(port,hostName,()=>{
console.log(`
this server is ruining in: http://${hostName}:${port}
`)
})
```

以上是关于Node.js基础知识的主要内容,如果未能解决你的问题,请参考以下文章

Node.js知识体系图 重磅上线

Node.js基础知识

Node.js 基础

Node.js基础:第一篇

node.js从基础到实战六阶段系统

node.js基础内容