一、 什么是node

一句话总结: Node.js 或者Node是一个开源跨平台的运行环境,用来在浏览器外执行javascript代码

1.用处

较常用的如 使用Node来创建后端程序

2.什么是后端

现在的前后端基本都是分离的,也意味着后端程序要做的,就是创建API,即应用程序接口英文Application Programming Interface

前端广义来讲不只包括网页应用的前端,一切由用户来操作的客户端都是前端,包括手机应用。

客户端负责管理用户的所见和所做,它们只是外壳,需要和一些在服务器或云端的服务后端对话,来实现保存数据,发送邮件,推送消息,流转工作等功能

3.Node后端的特性:

node可以构建高可扩展性、数据密集型、实时的后端应用

相当其它语言或框架的后端,node 具有

  1. 容易上手,适合原型和敏捷开发的工作
  2. 开发快速和高扩展性服务
  3. javascript 具有的通用性,及庞大的npm 包
  4. 前后端语言统一,代码干净,项目易维护

4.node的设计结构

node是一个运行在浏览器外面的javascript 的运行环境

5.什么是运行环境

之前 ,javascript一直只能运行在浏览器中,每个浏览器里都有一个javascritp引擎它将js代码转换成机器能够识别的机器码,比如chrome的著名的v8引擎,这个引擎就相当于是浏览器提供了一个javascript代码的运行环境

2009年,Ryan Dahl大神,抽取了当时最快的引擎,也就是v8, 用c++编写的一个程序把v8封装起来,命名为Node。Node 也是一个javascript的运行环境,与浏览器不同的是,Node 中没有dom对象和Bom对象,但是提供了一些其它对象,如文件的对象,http请求的对象

所以,node是一个包含了javascript运行环境的程序,并提供了一些浏览器环境下没有操作,比如处理文件系统,网络请求等

6.node如何工作

首先为什么说node是高扩展性

因为node 是无阻塞或者异步的

什么是异步

餐厅的服务员接待客人的方式就是异步,下单后他没有一直等到出菜再给你送来,而是去接待其它人,当你的菜做好了,再来上菜

服务员就好像等待需求的进程,所以一个进程可以服务多个需求

数据密集型、实时

因为无阻塞的模式,node可以实现同时很多数据的请求的响应,把它们放入异步队列,执行完再返回请求

但是node不擅长密集运算型的应用,比如视频渲染,图片处理。这种需要cpu进行大量运算,而node是单线程的,当要给一个用户提供运算时,其它的就要等待

更多推荐