Node.js是什么
传统意义上的javascript
运行在浏览器上,这是因为浏览器内核实际上分为两个部分,渲染引擎
和javaScript
引擎。前者主要负责渲染HTML+CSS
,后者主要负责运行javaScript
。
Node.js是JavaScript语言的服务器运行环境。所谓“运行环境”有两层意思:首先,JavaScript语言通过Node在服务器运行,在这个意义上,Node有点像JavaScript虚拟机;其次,Node提供大量工具库,使得JavaScript语言与操作系统互动(比如读写文件、新建子进程),在这个意义上,Node又是JavaScript的工具库。
Node.js内部采用Google公司的V8引擎,作为JavaScript语言解释器;通过自行开发的libuv库,调用操作系统资源。
总结:
(1)浏览器的内核
- 渲染引擎:用于渲染HTML、CSS
- js引擎:用于执行JavaScript代码
(2)Node.js搭建了一个JavaScript的服务器运行环境,JavaScript可以脱离浏览器直接运行
(3)Node相当于JavaScript的虚拟机,虚拟的构建一个JavaScript的“运行环境”
(4)Node使用的谷歌的V8引擎,可以方便的调用操作系统资源
为什么要用Node.js
javaScript语言本身是完善的函数式语言,在前端开发时,开发人员往往写得比较随意,让人感觉JavaScript就是个“玩具语言”。无法像其他编程语言一样满足工程的需要。
但是,在Node环境下,通过模块化的JavaScript代码,加上函数式编程,并且无需考虑浏览器兼容性问题,直接使用最新的ECMAScript 6标准,可以完全满足工程上的需求。
Node.js 适合以下场景:
- 实时性应用,比如在线多人协作工具,网页聊天应用等。
- 以 I/O 为主的高并发应用,比如为客户端提供 API,读取数据库。
- 流式应用,比如客户端经常上传文件。
- 前后端分离。
Node.js应用程序的示例
const http = require("http"); //引入node的http模块
//设置服务器地址和端口号
const hostname = "127.0.0.1";
const port = 3000;
//创建http服务器
const server = http.createServer((req,res)=>{
/*
req:是ruquest(请求对象):包含客户端向服务器端发送的请求信息
res:是response对象(响应对象):包含服务器端向客户端发送的响应信息
*/
res.statusCode = 200; //服务器向客服端发送的状态码
res.setHeader("Content-type","text/plain"); //设置响应头信息:服务器向客服端发送的相应信息的格式
res.end("Hello World!"); //关闭响应同时向客服端发送字符串
})
//启动服务器端的监听
server.listen(port,hostname,()=> {
console.log(`服务器运行在:http://${hostname}:${port}`);
})
npm
npm:是node自带的包管理器,用于安装、卸载node程序中使用的模块。
- 下载并安装npm服务器上的第三方模块
- 下载安装别人编写好的命令行程序
- 可以将自己写的模块上传到npm服务器(实现了模块的共享)
(1)npm-v
npm-v:查看npm是否安装成功和版本号
(2)npm install npm -g
npm install npm -g:升级npm
(3)全局安装
全局安装:npm install 模块名称 -g
(4)本地安装
本地安装:npm install 模块名称
(5)安装指定版本号的模块
npm install 模块名称@版本号
(6)cnpm
重新安装一个cnpm(定位到淘宝镜像),用cnpm命令安装模块
(7)卸载安装的模块
npm uninstall 模块名称
yarn包管理器
yarn是一款高效、快速、安全可靠的包管理器
(1)带有缓存机制
缓存机制:将第一次下载的包缓存下来,提高了包的安装下载速度。
(2)安装yarn
npm install yarn
(3)初始化
yarn init
(4)查看版本号
yarn --version
(5)安装模块
yarn add 模块名称@版本号
(6)卸载模块
yarn remove 模块名称
REPL环境
REPL(Read-eval-print-loop):读取-求值-输出-循环
可以直接运行JavaScript的各种指令
打开方式:cmd窗口输入node回车。