一.说说你对node的理解

从定义+特点+作用来说对node的理解

定义:node是基于Chrmo v8引擎的JavaScript运行环境;

特点:具有事件驱动,非阻塞I/O模型,高并发和轻量级,单线程,单进程特点;

作用:执行js并不受浏览器安全级别的限制(跨域),可以操作系统级别的api:如文件读写,进程管理,网络通信等

二.对chrome v8引擎的理解

chrome v8是谷歌开源的高性能javasc引擎,谷歌浏览器使用的正是该引擎

底层是基于c++开发的,所以既能独立运行,又可以嵌入c++应用中

能解析和执行JavaScript

具有高性能和跨平台的特性,所以也是node的javascript引擎

JIT编译出即时机器码,能极大提高效率

借鉴了java vm的垃圾回收机制,能精准回收垃圾

三.node规范

nodejs遵循commonjs规范

对于nodejs来说,每一个文件都是一个模块,模块内的成员私有

每个文件都有一个module,代表当前模块;每个模块都有exports属性,代表对外提供的接口.module.exports={...}

使用require来加载模块,加载的时候会去执行被加载模块内的代码,结果返回加载模块的exports对象

模块的加载顺序按照在js中出现的顺序

模块可以多次加载,但是第一次加载完成后,就会将结果缓存,之后每次使用都是从缓存中读取结果(一个模块多次require,只有第一次会执行)

四.require的加载过程

require在加载模块时,会先去module.cache缓存中寻找是否有缓存

没有缓存的时候,创建一个新的module实例,把实例存储在缓存中;

用module.load()去加载指定模块

一旦加载/解析过程中出现异常就删除缓存中该模块

加载成功后返回该模块的module.exports对象

五.中间层

理解node的中间层,java后台有多个接口,我们通过node中间层把多个接口合并为一个接口

六.中间件

内置中间件

在node官网上的基本上都是内置中间件,所谓的内置中间件就是已经在node环境中存在的中间件,引用时直接require中间件名字

querystring//编码,解码,解析参数等

path//路径方面

Error//错误

http,https//请求

url//处理路径

第三方中间件

需要下载的中间件

http-proxy-middleware//跨域

cheerio//解析html,可以用于爬虫

bodyParser//用于express获取post请求参数

node基础知识-说说对node的理解的更多相关文章

  1. IM开发基础知识补课(四):正确理解HTTP短连接中的Cookie、Session和Token

    本文引用了简书作者“骑小猪看流星”技术文章“Cookie.Session.Token那点事儿”的部分内容,感谢原作者. 1.前言 众所周之,IM是个典型的快速数据流交换系统,当今主流IM系统(尤其移动 ...

  2. Vue.js 运行环境搭建详解(基于windows的手把手安装教学)及vue、node基础知识普及

    Vue.js 是一套构建用户界面的渐进式框架.他自身不是一个全能框架——只聚焦于视图层.因此它非常容易学习,非常容易与其它库或已有项目整合.在与相关工具和支持库一起使用时,Vue.js 也能完美地驱动 ...

  3. node基础知识

    Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境,是一个可以让 JavaScript 运行在服务器端的平台 Node.js 使用了一个事件驱动.非阻塞式 I/O ...

  4. [C# 基础知识系列]专题九: 深入理解泛型可变性

    引言: 在C# 2.0中泛型并不支持可变性的(可变性指的就是协变性和逆变性),我们知道在面向对象的继承中就具有可变性,当方法声明返回类型为Stream,我们可以在实现中返回一个FileStream的类 ...

  5. JavaScript基础知识从浅入深理解(一)

    JavaScript的简介 javascript是一门动态弱类型的解释型编程语言,增强页面动态效果,实现页面与用户之间的实时动态的交互. javascript是由三部分组成:ECMAScript.DO ...

  6. node基础知识-常用node命令

    node中js的组成部分:ECMAScript核心+全局成员+模块系统成员 浏览器中的js组成部分:ECMAScripts核心+BOM+DOM 常用node命令 cmd中进入REPL环境:直接输入no ...

  7. node基础篇一:node介绍、node http、node event 课堂(持续)

    最近工作一直很忙,没时间更新,谅解,这次准备更新一次node教程,本课堂将持续更新,每周坚持更新一到两章,希望对大家有一些小帮助吧: 一.首先什么是node? 1/Node.js 是一个基于 Chro ...

  8. [C# 基础知识系列]专题八: 深入理解泛型(二)

    引言: 本专题主要是承接上一个专题要继续介绍泛型的其他内容,这里就不多说了,就直接进入本专题的内容的. 一.类型推断 在我们写泛型代码的时候经常有大量的"<"和"& ...

  9. C语言中 指针的基础知识总结, 指针数组的理解

    1: 指针变量所占的字节数与操作系统为位数有关,64位操作系统下,占8个字节,32位操作系统下,占4个字节 2: 指针变量的本质是用来放地址,而一般的变量是放数值的3: 脱衣服法则: a[2] 变成 ...

随机推荐

  1. iOS获取剩余存储空间

    //ios获取剩余存储空间 -(void)usedSpaceAndfreeSpace{ NSString* path = [NSSearchPathForDirectoriesInDomains(NS ...

  2. C语言冒泡排序法分析及代码实现

    冒泡排序法: 所谓冒泡排序法,就是对一组数字进行从大到小或者从小到大排序的一种算法.具体方法是,相邻数值两两交换.从第一个数值开始,如果相邻两个数的排列顺序与我们的期望不同,则将两个数的位置进行交换( ...

  3. AJ学IOS(40)UI之核心动画_抖动效果_CAKeyframeAnimation

    AJ分享,必须精品 效果: 效果一: 效果二: 代码: // // NYViewController.m // 图片抖动 // // Created by apple on 15-5-8. // Co ...

  4. L15卷积神经网络基础

    卷积神经网络基础 本节我们介绍卷积神经网络的基础概念,主要是卷积层和池化层,并解释填充.步幅.输入通道和输出通道的含义. 二维卷积层 本节介绍的是最常见的二维卷积层,常用于处理图像数据. 二维互相关运 ...

  5. [PHP][thinkphp5] 学习一:增删改查

    <?php namespace app\index\controller; use think\Controller; use think\Db; class Test extends Cont ...

  6. C# WCF之用接口创建服务契约、部署及客户端连接

    服务契约描述了暴露给外部的类型(接口或类).服务所支持的操作.使用的消息交换模式和消息的格式.每个WCF服务必须实现至少一个服务契约.使用服务契约必须要引用命名空间System.ServiceMode ...

  7. JS静态变量和静态函数

    本文链接:https://blog.csdn.net/u012790503/article/details/46278521 function A(){this.id = "我是AA&quo ...

  8. opencv-4-成像系统与Mat图像颜色空间

    opencv-4-成像系统与Mat图像颜色空间 opencvc++qtmat 目标 知道 opencv 处理图像数据的格式 介绍 mat 基础内容 知道 BGR 颜色 显示 颜色转换 BGR 到 灰度 ...

  9. 8.Python中装饰器是什么?

    Python中装饰器是什么? A Python decorator is a specific change that we make in Python syntax to alter functi ...

  10. ICML2016 TUTORIAL参会分享

    本次ICML会议的tutorial安排在主会前一天.这次tutorial内容非常丰富,有微软亚研的hekaiming(已经跳去facebook)介绍深度残差网络,也有deepmind的david si ...