day37node入门
一 node是什么
1.node.js是一个基于谷歌V8引擎的 javascript运行环境!
换句话来说,无V8的扶持就不会有NODE 。
2.node对浏览器v8改装,加装http模块和fs文件,
二 node模块化分类
1.自定义模块
我们自己按照模块化的语法,开发的js文件自己定义模块,自己在需要的时候导入模块使用自己决定模块内哪些内容向外暴露
2.内置模块
node这个环境天生自带的一些模块("一个一个的js文件")你需要使用时,直接引入就好
3.第三方模块
其他人把一些常用功能直接封装好,做了一个开源,我们使用的时候,直接引入使用就好了
3.第三方模块
其他人把一些常用的功能直接封装好 做了一个开源 我们使用的时候先下载下来,直接到导入按照人家的规则使用,并且当时被命名为ServerJS,后来为了体现他的广泛性
本章高频面试题
1 node 有什么特点 ?
1 天生单线程支持高并发
2 非阻塞IO模型 高并发性能数一数二(异步)
3 轻量和高效
4 前后端不用换语言可以开发全栈应用
2 node有哪些特征与其他服务器端对比 ?
特征:单线程、事件驱动、非阻塞I/O
node 无法直接渲染静态页面,提供静态服务
node 没有根目录的概念
node 必须通过路由程序指定文件才能渲染文件
node 比其他服务端性能更好,速度更快
3 使用npm有哪些好处?
通过NPM,你可以安装和管理项目的依赖,并且能够指明依赖项的具体版本号,可以通过package.json文件来管理项目信息,配置脚本
一 什么是node中的模块化
- 一个 js 文件就是一个模块
- 我们把一类方法放在一个 js 文件里面, 这个 js 文件就变成了一个模块
- 再需要哪一类方法的时候, 引入这个 js 文件就好了
- 再开发的过程中, 尽可能把开发方式趋近于模块的方式
- 把我们所有的内容都按照类别分好文件
- 按需引入
为了团队写作,和代码清晰管理方便,nodejs开发都要遵循模块化!
二 node模块化分类
1. 自定义模块
我们自己按照模块化的语法, 开发的 js 文件
自己定义模块, 自己再需要的时候导入模块使用
自己决定模块内哪些内容向外暴露
2. 内置模块
node 这个环境天生自带的一些模块("一个一个的 js 文件")
你需要使用的时候, 直接引入使用就好了
3. 第三方模块
其他人把一些常用的功能直接封装好
做了一个开源
我们使用的时候先下载下来, 直接导入按照人家的规则使用
三 node采用CommonJS规范
我们需要知道CommonJS是一个 民间 规范,最初提出来是在浏览器意外的地方使用,并且当时被命名为ServerJS,后来为了体现它的广泛性,修改为CommonJS,平时我们也会简称为CJS。
Node是CommonJS在服务器端一个具有代表性的实现;
在Node中每一个js文件都是一个单独的模块;
这个模块中包括CommonJS规范的核心变量:exports、module.exports、require;
我们可以使用这些变量来方便的进行模块化开发
本章高频面试题
commonjs规范和es6模块化规范 区别?
历史上,js一直没有模块(module)体系,无法将一个项目拆分成多个模块文件。正对这一情况,社区出现了一些统一的规范:CommonJs和AMD,前者是针对服务端的js,也就是nodejs。后者是针对浏览器的。ES6在语言标准层面上,实现了模块功能,而且实现也比较简单。完全可以取代CommonJs和AMD。达成前后端js的模块风格统一。不过目前还未完全达到这一目的。nodejs目前主流还是采用CommonJS规范。不过在v13.2版本,nodejs已经实现了ES6模块语法,还未正式替换,未来有可能vue node等都统一成es6的官方规范!
在真正的服务器里如何启动服务器