node是做什么的?

是属于后端,用来创建高性能的web服务器。
优点:1)处理高并发  2)处理IO密集比较有优势  input output
IO密集:操作文件,网络操作,数据库...
CPU密集:运算,压缩,解压,加密,解密....

客户端:

浏览器,手机上的软件,电脑上的软件,小程序,公众号,平板的软件,智能设备...

服务器:

本质也是一个计算机,它上面的软件和我们平常用的软件不一样,tomcat,mysql

node创建高性能web服务器:

说白了就是缩短请求和响应时间:
1)请求:客户端  我们控制不了  取决于网络
2)响应:响应快一点
           提高服务器的带宽  cnd加速...
        服务器处理快一点  程序员可以控制
        读写数据库也需要快一点   程序员也可以控制  数据库的读写也是有瓶颈的...

java为例:
    多线程的  一个请求就会开一个线程,这个线程来处理这个请求  资源:CPU和内存

Node是单线程的:
    让一个服务员拼命的干活。

node是一个JS的运行环境,浏览器也是JS的运行环境。 如果JS运行在浏览器中,那么JS是运行在前  端的,如果JS运行在NODE中,JS是运行在后端的。

NODE环境中,只能写ES代码,不能写DOM和BOM。

安装NODE环境:

官网的下载地址:http://nodejs.cn/download/   下载window的msi版本的64位
得到一个安装包,双击安装,傻瓜式安装

如何打开命令行容器:

win+r 输入cmd  按回车
打开一个文件面板 在地址栏中输入cmd  按回车  推荐这一种
使用vscode自带的
使用webstrom自带的
按住shift键 + 鼠标右键 + 在此处打开命令行窗口

证明是否安装OK:

打开命令行窗口,输入node -v,如果弹出了一个版本号,表示node安装成功。

如何让代码在node环境中运行:

在webstrom中,直接鼠标右键。
在vscode中,你需要安装一个插件,叫code runner,你鼠标右键,也有一个run

node中,把文件分成三种模块:

1)系统模块,也叫核心模块,是Node帮我们提供好的,我们直接用
    加载模块,提供了一个方法,叫require()
    载入http模块:require("http")
2)第三方模块,是一些大神写好的模块,我们也是直接用
3)自定义模块,我们自己写的模块

http模块:

此模块可以创建一台服务器。
端口:一个服务器上,可以提N个服务器,如何区分是哪一个服务器,就靠端口。 一共的端口数据:0~65535。0~1024不要用,知名端口也中用。
   暂时,你可以使用3000   5000
监听客户端的请求:
    let http = require("http");
    let server = http.createServer();
    server.on("request",(req,res)=>{
        res.write("hello 客户端");
        res.end();
    });
    server.listen(3030,()=>{
        console.log("3030服务成功了")
    })

运行一个服务器:

1)鼠标右键 ----> run
2)定位代码的目录下面 ----> node xxx.js   不想运行此服务器,按两个ctrl(不要松)+ c(两次)

www.baidu.com ====> http://www.baidu.com
baidu.com 叫域名 域名相比IP好记
39.156.66.18

url:

http://127.0.0.1:3030
http://localhost:3030/news
http:// 协议  客户端与服务器之间通信的规则   汉语
127.0.0.1   每一台服务器都有一个IP地址  本地电脑如果充当服务器  那么此台电脑的IP地址是127.0.0.1
localhost   127.0.0.1对应的域名是localhost  是一个特殊的域名  每个人的电脑都一样
3030   端口  表示你访问服务器上的哪一个服务  通常我们访问网站,不需要加端口,原因是80端口是默认的
/news  路径  在端口后面放路径

客户端访问服务器:

通过一个url去访问服务器。

node:

原生node   类似于webapi
node框架   类似于jq   express

下载第三方模块:

当我们安装了node,默认它就给我们安装了一个下载器,叫npm(node package manage)。

证明下载器是否安装成功:

打开命令行窗口,通过npm -v,如果出现版本号,就表示安装OK。

npm:

1)表示下载器
2)社区(网站) 这个网站上有很多的第三方模块

国内tabao,也有对应的下载源,我们就需要切换下载源。我们需要把下载源切换到国外。

安装:

1)npm install xxx   安装xxx第三方模块  默认就去国外下载源找
// --registry=https://registry.npm.taobao.org 表示去国内taobao源下安装
2)npm install xxx --registry=https://registry.npm.taobao.org   安装xxx第三方模块  默认就去国外下载源找  这样写也不方便

我们可以借助一个第三方模块,叫nrm,我们需要下载nrm模块:

// -g表示全局安装  只要是全局安装了  那么你就可以使用nrm这个命令了
npm install nrm -g --registry=https://registry.npm.taobao.org    install可以简写成i

nrm的使用:

切源:nrm use taobao  一次性把下载源切换到淘宝了  意味着,后面不需要写--registry=https://registry.npm.taobao.org
查看源:nrm ls

一个项目中,可能会用到非常多的第三方模块,我们最好记录一下,你用了什么第三方模块,如何记录:
答:通过一个json文件来记录。

如何生成json文件:
答:npm init -y 会生成一个叫package.json文件

我们就可以利用这个package.json文件,记录,你安装了哪些第三方依赖

使用express:

1)安装:npm i express   安装express第三方模块  帮我们快速创建一个服务器
2)使用

如果你修改了服务器代码,你需要重新启动服务器:

先关闭服务器,再开启服务器

有一个第三方模块,可以自动帮我们重启服务器,叫nodemon。

安装:npm i nodemon -g 全局安装这个nodemon这个模块,如果全局安装了,就可以使用nodemon这个命令了。

使用:

不要使用node启动服务器,使用nodemon去启动服务。 nodemon xx.js