当前位置:网站首页>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
边栏推荐
- Adobe Premiere foundation - tool use (selection tool, razor tool, and other common tools) (III)
- Adobe Premiere Basic - tool use (select tools, rasoir tools, and other Common Tools) (III)
- Adobe Premiere Foundation (track related) (V)
- Db2 SQL PL的数组类型
- HelloWorld example of TestNG and how to run it from the command line
- Seata installing the window environment
- 基于谱加权的波束方向图分析
- How to realize the management "desire" of Business Intelligence BI service objects and enterprise managers?
- AGI基础,不确定性推理,主观逻辑一书ppt1
- 第四章 数据类型(三)
猜你喜欢

In the introductory study of data visualization, we should be alert to pitfalls and misunderstandings and grasp key nodes

RK1126 新添加一个模块

数据治理经典6大痛点?这本书教你解决

数字化时代,企业如何进行数据安全治理,保障数据资产安全

Use of uiautomator2 automated test tool

Adobe Premiere Foundation (animation production - Flexible animation) (VIII)

数字化转型怎样转?朝哪转?

Adobe Premiere foundation - time remapping (10)

uniapp 原生js实现公历转农历

Adobe Premiere foundation - opacity (mixed mode) (XII)
随机推荐
[kuangbin] topic 22 interval DP
台积电刘德音:不担心半导体库存修正及美日韩合作,今年业绩将增长30%!
Db2 SQL PL简介
Dynamic SQL of DB2 SQL pl
What is Bi? Talk about the definition and function of Bi
Adobe Premiere Basic - tool use (select tools, rasoir tools, and other Common Tools) (III)
微信小程序,获取当前页面,判断当前页面是不是tabbar页面
Array signal processing simulation part IV -- Z-transform analysis array polynomial
[QNX hypervisor 2.2 user manual] 3.2.2 VM configuration example
Salesmartly | add a new channel slack to help you close the customer relationship
数字化转型怎样转?朝哪转?
How to set up salesmartly for Google Analytics tracking
商业智能BI在企业的价值之:业务分析发展决策
Leecode27977 double finger needling
[QNX hypervisor 2.2 user manual] 3.3 configure guest
[kuangbin]专题十二 基础DP1
阵列信号处理仿真之四——Z变换分析阵列多项式
Introduction to DB2 SQL pl
Huawei cloud hcde Cloud Road phase II: how does Huawei cloud help small and medium-sized manufacturing enterprises' digital transformation?
Wireshark learning notes (II) detailed explanation of forensics analysis cases