1、Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境。
2、Node.js 使用了一个事件驱动、非阻塞式 I/O 的模型,使其轻量又高效。
3、Node.js 的包管理器 npm,成为世界上最大的开放源代码的生态系统。
简单的说 Node.js 就是运行在服务端的 JavaScript。
扩展;
I : input即输入端口
o : output即输出端口
CPU与外部设备、存储器的链接和数据交换都需要通过接口设备来实现,前者称为I/O接口,后者被称为存储器接口
需要更多教程,微信扫码即可
👆👆👆
别忘了扫码领资料哦【高清Java学习路线图】
和【各学科****全套学习视频及配套资料********】
二、什么是V8引擎?
每一个浏览器都有一个内核,内核中有引擎。引擎分为:渲染引擎(渲染DOM) 和 脚本引擎(运行脚本语言)
脚本引擎中最流行的就是chrome中的V8引擎
三、Node可以做什么?
1、node可以解析js代码(因为没有浏览器安全级别的限制)因此提供了许多系统级别的API
2、node可以编写独立的服务端应用,无需借助任何web服务器,可以连接文件系统,以及操作数据库
3、node一般在实际应用中用来做中间层服务器使用
注意:
在node中无法使用window对象下面的一些方法,因为node中没有DOM 和 BOM的概念,同时node中也有一些属性浏览器无法使用 例如:process global等对象
四、node的优点和适用的项目?
优点:
高性能、速度快、效率高 适合做高并发的项目(I/O密集型的应用)
缺点:
不适合做大量的运算应用(CPU密集的应用)
五、扩展版本号
6.11.4
第一个是大版本号
第二个是小版本号
第三个是补丁版本号
版本问题:LTS长期稳定版本 Current最新版本 偶数为稳定版本 基础为非稳定版本
六、node交互模式
以前我们运行js必须基于浏览器这个环境,那么现在我们还可以在终端运行node的文件
1、建立一个hellow.js文件
2、运行js文件
node 文件名称
3、进入交互模式
node
4、退出交互模式
ctrl+d
注意:
node的环境下 没有dom 和bom的概念
node里面的方法有的在浏览器中也不能运行 例如 process进程
process
process.env是一个对象,我们可以通过其属性名来获取具体的环境变量值
设定一个环境变量,以达到简单区分不同机器,从而针对生产/开发环境运行不同的效果
每个系统的环境变量几乎都不一样,我们可以利用环境变量中具体某个特定的值来区分不同的机器
set:set命令作用主要是显示系统中已经存在的shell变量,以及设置shell变量的新变量值
process.argv:获取命令行参数
返回值是一个数组
参数1:node的绝对路径
参数2:文件的绝对路径
参数3:…arg
__filename:获取当前运行文件的目录,绝对路径
__dirname:当前运行文件的绝对路径
七、创建一个简单的服务器
1、require:引入相应模块
2、createServer():创建服务器
3、listen:绑定端口号 参数2个 第一个参数端口号 第二个参数地址
4、request,response:接受和响应数据
//1、引入http模块
var http = require("http");
//2、创建服务器
http.createServer(function(request,response){
//发送HTTP头部
//状态值为200
//内容类型:text/plain
response.writeHead(200,{"Content-type":text/plain});
//发送相应数据
response.end("hellow")
}).listen(8888);
//终端打印信息
console.log("Server running at http://127.0.0.1:8888/");
content-type:类型
1、text/plain:文本类型
2、text/html:html文档
3、image/* :图片类型
4、 application/x-javascript :javascript类型
5、text/css : css类型
6、application/json; charset=utf-8
八、request&&response常用的属性
req:包含请求的信息,例如请求头等
req.url:请求的地址
req.method:请求的方式
req.header:请求头
res:服务器的响应
res.statusCode:设置状态码
res.setHeader():设置响应头,其他Content-type:是设置浏览器相应数据的类型
res.writeHead();statusCode与setHeader的综合写法
res.write():写入响应数据,只能写入字符串
res.end():结束响应,并返回数据
九、node中模块的分类
1、node核心模块,require可以直接引入
2、自定义模块:需要自己写的模块 用module.exports导出 require引入
3、第三方模块:通过npm install 来安装 然后在require引入
十、什么是模块化?
模块化是将一个功能拆分成若干个小功能的方法
优点:
代码复用、便于维护
模块化划分的原则:
1、功能复用次数较多
2、功能逻辑较为独立
扩展:
什么是高内聚、低耦合?
高内聚:代表模块的独立性、独立性越强、内聚度越高
耦合度:模块之间的关系,关系越紧密、耦合度越高
现有的模块化规范:
AMD CMD COMMON ES6module
前端 前端 后端 前后端
require sea.js Node js引擎
异步 异步 同步 同步
十一、npm
1、什么是npm?
npm是node的包管理仓库
npm是一个网站
npm是一个命令
2、npm 常用命令
学习路线:
这个方向初期比较容易入门一些,掌握一些基本技术,拿起各种现成的工具就可以开黑了。不过,要想从脚本小子变成黑客大神,这个方向越往后,需要学习和掌握的东西就会越来越多以下是网络渗透需要学习的内容:
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!