Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
ShawnGoethe
Understand Nodejs
提交
1183a82a
U
Understand Nodejs
项目概览
ShawnGoethe
/
Understand Nodejs
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
U
Understand Nodejs
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
未验证
提交
1183a82a
编写于
10月 14, 2020
作者:
T
theanarkh
提交者:
GitHub
10月 14, 2020
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #7 from meixg/patch-1
Update chapter01 nodejs组成和原理.md
上级
f12b168a
1a55e185
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
1 addition
and
1 deletion
+1
-1
chapter01 nodejs组成和原理.md
chapter01 nodejs组成和原理.md
+1
-1
未找到文件。
chapter01 nodejs组成和原理.md
浏览文件 @
1183a82a
...
...
@@ -324,7 +324,7 @@ BootstrapInternalLoaders用于执行internal/bootstrap/loaders.js。我们看一
7
.
const
primordials
=
{};
8
.
const
export
=
demo
(
process
,
getLinkedBinding
,
getInternalBinding
,
primordials
);
```
v8把internal/bootstrap/loaders.js用一个函数包裹起来,形参就是loaders_params变量对应的四个字符串。然后执行这个
参
数,并且传入loaders_args里的那四个对象。internal/bootstrap/loaders.js会导出一个对象。在看internal/bootstrap/loaders.js代码之前,我们先看一下getLinkedBinding, getInternalBinding这两个函数,nodejs在c++层对外暴露了AddLinkedBinding方法注册模块,nodejs针对这种类型的模块,维护了一个单独的链表。getLinkedBinding就是根据模块名从这个链表中找到对应的模块,但是我们一般用不到这个,所以就不深入分析。前面我们看到对于c++内置模块,nodejs同样维护了一个链表,getInternalBinding就是根据模块名从这个链表中找到对应的模块。现在我们可以具体看一下internal/bootstrap/loaders.js的代码了。
v8把internal/bootstrap/loaders.js用一个函数包裹起来,形参就是loaders_params变量对应的四个字符串。然后执行这个
函
数,并且传入loaders_args里的那四个对象。internal/bootstrap/loaders.js会导出一个对象。在看internal/bootstrap/loaders.js代码之前,我们先看一下getLinkedBinding, getInternalBinding这两个函数,nodejs在c++层对外暴露了AddLinkedBinding方法注册模块,nodejs针对这种类型的模块,维护了一个单独的链表。getLinkedBinding就是根据模块名从这个链表中找到对应的模块,但是我们一般用不到这个,所以就不深入分析。前面我们看到对于c++内置模块,nodejs同样维护了一个链表,getInternalBinding就是根据模块名从这个链表中找到对应的模块。现在我们可以具体看一下internal/bootstrap/loaders.js的代码了。
```
c
1
.
let
internalBinding
;
2
.
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录