当前位置:网站首页>nodejs-基本架构分析-解析引擎目录-插件安装-核心模块
nodejs-基本架构分析-解析引擎目录-插件安装-核心模块
2022-06-10 18:14:00 【插件开发】
开发nodejs相关程序,需要对nodejs有个全方位的大概剖析,先了解有多少现存库,怎么架构的,插件如何安装等,这样在面对项目任务时,才能做到心中有底。
1.nodejs概述
Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境。 V8引擎执行Javascript的速度非常快,性能非常好。Node.js 使用了一个事件驱动、非阻塞式 I/O 的JavaScript模型。由于web运行环境的安全性考虑,运行在浏览器的JavaScript有许多的局限性,而为了使其在更广泛的环境里可以使用,nodejs补充了这部分功能。本文主要介绍其在前端界面开发方面的应用,一般基于谷歌的Chromium开发。引擎名称为CEPHtmlEngine,解析引擎目录如下图所示:
2.基本架构

如上图所示:your code 为用户代码,node.js 核心,Host environment 为宿主环境(提供各种服务,如文件管理,多线程,多进程,IO etc)
nodejs组成部分:v8 engine, libuv, builtin modules, native modules以及其他辅助服务。
v8 engine:主要有两个作用 1.虚拟机的功能,执行js代码(自己的代码,第三方的代码和native modules的代码)。2.提供C++函数接口,为nodejs提供v8初始化,创建context,scope等。
libuv:它是基于事件驱动的异步IO模型库,我们的js代码发出请求,最终由libuv完成,而我们所设置的回调函数则是在libuv触发。
builtin modules:它是由C++代码写成各类模块,包含了crypto,zlib, file stream etc 基础功能。(v8提供了函数接口,libuv提供异步IO模型库,以及一些nodejs函数,为builtin modules提供服务)。
native modules:它是由js写成,提供我们应用程序调用的库,同时这些模块又依赖builtin modules来获取相应的服务支持。
总结:如果把nodejs看做一个黑匣子,暴露给开发者的是native modules,当我们发起请求时,请求自上而下,穿越native modules,通过builtin modules将请求传送至v8,libuv和其他辅助服务,请求结束,则从下回溯至上,最终调用我们的回调函数。
3.nodejs历史版本
可以在官方提供的网址中,下载需要的nodejs安装环境,https://nodejs.org/en/download/releases/
4.windows下nodejs目录结构
下载node-v8.17.0-x64版本,在windows7下安装,完成后目录结构如下图所示:
打开控制台定位到该目录下,可以利用npm命令安装其它插件。设置完npm插件的安装路径后,会在你设置的路径下自动创建一个node_modules文件夹来存储插件。
5.nodejs插件管理(npm)模块基本功能
安装npm模块。
查看帮助:npm help/npm h
安装模块:npm install <module name>/ npm install -g <Module Name>
卸载模块:ninstall <Moudle Name>
显示当前目录下安装的模块:npm list
边栏推荐
- 3. getting started with golang concurrency
- 台积电刘德音:不担心半导体库存修正及美日韩合作,今年业绩将增长30%!
- 直播预告 | 解构OLAP!新型多维分析架构范式全公开!Apache Doris 将带来五个重磅议题!
- IBOX系统开发核心功能和部分核心源码
- 华为云HCDE上云之路第二期:华为云如何助力制造业中小企业数字化转型?
- Adobe Premiere foundation - time remapping (10)
- Chapter III data type (II)
- Ibox system development core functions and some core source codes
- Adobe Premiere basic special effects (card point and transition) (IV)
- Building smart community Internet of things based on smart road lamp posts
猜你喜欢

Three ways generated by stream lambda

Rk1126 adds a new module

直播预告 | 社交新纪元,共探元宇宙社交新体验

AEC:回声产生原因及回声消除原理解析

商业智能BI如何帮企业降低人力、时间和管理成本?

OPENCV 检测人脸 不依赖于任何第三方库

Adobe Premiere basic special effects (card point and transition) (IV)

Array signal processing simulation part IV -- Z-transform analysis array polynomial

HelloWorld example of TestNG and how to run it from the command line

锐捷x32pro刷openwrt开启无线160MHz
随机推荐
OPENCV 检测人脸 不依赖于任何第三方库
Three ways generated by stream lambda
AEC:回声产生原因及回声消除原理解析
Semiconductor silicon continued to fall short of demand, and Shenggao's long-term contract price rose by 30%!
端午“沉浸式云旅游”怎么玩?即构助力“直播+”新场景落地
锐捷x32pro刷openwrt开启无线160MHz
VMware vCenter 各版本号对照表
3. getting started with golang concurrency
& and||
[Interface tutorial] how does easycvr set platform cascading through the interface?
Cross domain error: when allowcredentials is true, allowedorigins cannot contain the special value "*“
Adobe Premiere基础-介绍,配置,快捷键,创建项目,创建序列(一)
Uncertainty reasoning: let the model know that it doesn't know
Metadata management, the basic construction of enterprises in the digital era
vcsa7u3c安装教程
Data URL
第161章 SQL函数 YEAR
Adobe Premiere foundation - Import and export, merge materials, source file compilation, offline (II)
【接口教程】EasyCVR如何通过接口设置平台级联?
Common methods of stream flow lambder