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