本文共 2753 字,大约阅读时间需要 9 分钟。
Node.js
Node.js 介绍
为什么要学 Node.js
-
大家可以去浏览一下目前市面上的一些招聘网站,看看网站上面的招聘需求。
-
企业需求:
- 具有服务端开发经验者优先。
- 我们以前学的、做的一直都是 front-end(前端)
- 我们现在要学的就是 back-end(后端)
- 所以,我们现在前后端都要做
- 现在有一个工程师的概念很火,叫做“全栈开发工程师”。即不分前后端,前后端都做。
-
学习目标:
- 掌握基本的网站开发能力(不仅仅局限于写页面,这里就包括所有的一整套流程)
- 服务端
- 前端
- 运维部署相关知识
- 也就是说一个网站从无到有,前后端全都自己写,然后自己将网站部署到互联网上,最后所有人都可以访问。
-
学习 Node.js 的目的:帮助大家打开服务器这个黑盒子。因为作为前端,我们不知道服务端怎么做的,接口怎么实现的,数据怎么处理的。所以说,只有我们学了 node ,掌握了 node ,才能更好的配合后端(服务端开发人员)进行开发。
-
为什么现在的公司招人都需要有服务端开发经验,原因是什么呢?
-
因为前端开发人员在开发过程中,需要和服务端开发人员进行配合。例如:接口怎么制定、数据怎么进行交互。所以说,只有了解服务端,懂了服务端,才能更好地配合服务端开发人员进行协同开发。
-
实现案例:多人社区(实现类似于这样一个网站,nodejs中文社区:
Node.js 是什么
- 前面我们说过,学习 Node.js 的目的是什么?即,是为了帮助大家打开服务器这个黑盒子。
- 那么,谁来帮我们打开呢?
- 显而易见,它就是 node.js。强调:并不是只有node可以打开。
- 服务端和前端不太一样,前端的技术,整体来讲只有三种:html、css以及js。但实际上,如果你要打开服务端的黑盒子,这种技术就比较多了。不仅仅node可以,还有很多其他的技术也可以打开。例如:众所周知的 java、PHP(想起一个梗:有一位男嘉宾参加《非诚勿扰》节目,主持人问他:你是做什么的呀?男嘉宾说:我是做PHP的。话音刚落,全场24位女嘉宾灯全灭了。)、大名鼎鼎的Python、Ruby、(.不读点,读dao。英文为dot,意思为点,圆点)、Node.js等。
- 为什么选择 Node.js 来打开服务端黑盒子?
- 因为同样的东西,它们都可以做到相同的事情,但是语法是不一样的。如果选用其他技术,你就要学习一门新的语言。如果选择 Node.js,不是因为它里面包含一个 . js,而是因为 node 采用 JavaScript 进行编程。相对来讲,如果用 node 来学习服务端,不需要为了学一个后台,而重新学习一门新的语言,没有必要。
- 有句话是这么说的:一个JavaScript,everywhere。即,凡是能用 JavaScript来实现的,最终都会用 JavaScript 来实现。因为它实在太强大了,纵观现在的前端和后端, js 已经无处不在了。
- 它是一个工具。(我们打开 node.js 的官方网站看看:。其实,我们可以发现:大部分技术相关的网站都是以 org 结尾的,也有一部分是以 io 结尾的。)
- 何谓 org ? org 其实是组织 organization 的缩写。abbr. 非盈利组织(Other organizations)
- 何谓 io ? 即输入输出(Input / Output)
Node.js® is a JavaScript runtime built on Chrome’s V8 JavaScript engine.
- 首先,Node.js 不是一门语言。
- 其次,Node.js 不是库,不是框架。
- Node.js 是一个 JavaScript 的运行时环境。构建于 Chrome 的 V8 引擎之上。
- JavaScript 引擎是一个专门处理 JavaScript 脚本的虚拟机,一般会附带在网页浏览器之中。
- 不同的浏览器,JavaScript 引擎是不一样的。
- 代码只是具有特定格式的字符串而已,引擎可以认识它,引擎可以帮你去解析和执行。
- 这就相当于 汽油 和 发动机的关系。代码就好比是汽油,你把汽油给发动机,发动机就可以帮你转化成动力。都是一个概念,所以说 js 引擎就是帮你解析执行 js 的。
- Google Chrome 的 V8 引擎是目前世界公认的解析执行 JavaScript 代码最快的。
- Node.js 的作者把 Google Chrome 中的 V8 引擎移植了出来,开发了一个独立的 JavaScript 运行时环境。
- 何谓运行时环境?简单来说, Node.js 可以解析和执行 JavaScript 代码。就和浏览器的功能一样。
- 以前只有浏览器可以解析执行 JavaScript 代码,现在的 JavaScript 可以完全脱离浏览器来运行。这一切都归功于 Node.js。
- 可以这样理解, Node.js 就是一个平台,是一个运行时环境,能解析和执行 js 代码。
- 注意:此处的 js 并非是浏览器中的 js,它们是有区别的。(这里,需要给大家解释一个东西)
- 浏览器中的 JavaScript(包括什么)
- Ecmascript(只包含基本语法)
- 基本的语法
- if-else
- var
- function
- Object
- Array
- …
- BOM
- DOM
- Node.js 中的 JavaScript
- 没有 DOM 和 BOM(服务器端是不操作或处理页面的)
- Ecmascript
- 在 Node 这个 JavaScript 执行环境中为 JavaScript 提供了一些服务器级别的操作 API。例如:文件读写、网络服务的构建、网络通信、HTTP服务器等处理。
- 学 Node.js 其实就是在学 Web 服务器开发。
- Node.js 的特性:事件驱动、非阻塞IO模型(异步)、轻量和高效。
- 随着课程的慢慢学习,你会明白什么是事件驱动 和 非阻塞IO模型。
- npm 是基于 Node.js 开发出来的包管理工具。
- npm 是世界上最大的开源库生态系统。
- 说白了,就是把常用的第三方包,放在了 npm 这个平台当中。然后你就可以通过执行一条命令去进行下载,就这么简单。
- 绝大多数 JavaScript 相关的包(基于 js 开发出来的东西)都存放在 了 npm 上。这样做的目的是为了让开发人员更方便的去下载使用这些包。
- 以前的做法:比如说以前要下载 jQuery 之能打开它的官网,找到它的下载链接,然后把文件下载下来。现在有了 npm 这个东西,一条命令你就可以搞定了。
- 比如: npm install jquery
Node.js 能做什么
未完待续…
转载地址:http://qxwli.baihongyu.com/