第27课:Node.js 模块详解
概述
本课主要讲解如何用 C++ 开发 Node.js 和 Electron 本地模块,其中涉及到 3 种技术:Node.js、Electron 和 C++ 语言。Electron 是基于 Node.js 的,允许用 Web 技术(HTML5、JavaScript 和 CSS3)开发桌面应用,也就是说,Node.js 将 JavaScript 从前端转移到了后端,而 Electron 又让 JavaScript 从后端以另一个角度转回的前端(也就是桌面应用)。尽管 Electron 是基于 Node.js 的,但由于与 Node.js 使用了不同的 V8 引擎,因而为 Node.js 开发的本地模块并不能直接用于 Electron,需要重新在 Electron 环境进行编译才可以。
Node.js 的模块机制
在讲解如何用 C++ 开发 Node.js 本地模块之前,应该先了解一下 Node.js 中的模块机制,这样更有助于掌握开发 Node.js 本地模块。
CommonJS 的模块规范
我们知道 Node. js 的根基就是 JavaScript 或者说是 ECMAScript,而 JavaScript 自身是不带模块机制的,因此 CommonJS 规范应运而生。
那么 CommonJS 是如何完成模块的引用和暴露模块成员的呢?
- 引用模块:require
require 是一个函数,该函数有一个参数代表模块标识,它的返回值就是其所引用的外部模块所暴露的 API。
讲得直白一点,就是能通过代码 const value = require("workman") 的形式引入 workman 这个模块并将返回值赋给 v
第27课:Node.js 模块详解相关推荐
- Node.js npm 详解
一.npm简介 安装npm请阅读我之前的文章Hello Node中npm安装那一部分,不过只介绍了linux平台,如果是其它平台,有前辈写了更加详细的介绍. npm的全称:Node Package M ...
- Node.js 入门详解 (三)
目录 1. 初识Express 1.1 Express简介 1.1.1 什么是Express 1.1.2 进一步理解 Express 1.1.3 Express能做什么 1.1.4 Express 中 ...
- Node.js 入门详解(一)
目录 前言 1. 初识 Node.js 1.1 回顾与思考 1.2 Node.js 简介 1.2.1 什么是Node.js 1.2.2 Node.js 中的 JavaScript 运行环境 1.2.3 ...
- Node.js 入门详解(四)
数据库与身份认证 1. 数据库的基本概念 1.1 什么是数据库 1.2 常见的数据库及分类 1.3 传统型数据库的数据组织结构 1.3.1 Excel的数据组织结构 1.3.2 传统型数据库的数据组织 ...
- node.js Promise详解(尚硅谷李立超老师视频笔记)
• Promise就是一个用来存储数据对象,但是由于Promise存取的方式的特殊,所以可以直接将异步调用的结果存储到Promise中 Promise存储异步数据: function sum(a,b) ...
- python的threading库_python标准库介绍——31 threading 模块详解
threading 模块 (可选) ``threading`` 模块为线程提供了一个高级接口, 如 [Example 3-1 #eg-3-1] 所示. 它源自 Java 的线程实现. 和低级的 ``t ...
- Node.js「一」—— Node.js 简介 / Node.js 模块 / 包 与 NPM
本文为 Node.js 系列笔记第一篇.文章参考:nodejs 教程 -- 大地:<深入浅出 Node.js>:阮一峰 nodejs 博客 文章目录 一.Node 简介 1. 简单介绍 2 ...
- 【ES6】Module模块详解
[ES6]Module模块详解 一.Module的由来 二.严格模式 三.export命令 四.import命令 查看更多ES6教学文章: 参考文献 引言:由于两个JS文件之间相互使用必须通过一个ht ...
- Node.js 模块之Nimble流程控制
NodeJS异步的特性有时候会导致程序非常的难看,回调一层套着一层,这个时候就要用流程控制模块来控制究竟是同步还是异步了. Nimble是一个轻量.可移植的函数式流程控制模块.经过最小化和压缩后只有8 ...
最新文章
- PASCAL VOC工具包解读
- 在ECSHOP分类列表页中调用商品货号
- C语言-运算符优先级及注意事项
- 单IP无TMG拓扑Lync Server 2013:前端服务器
- php中数据类型、数组排序、循环语句、混编、操作本地文件流程、常用API、函数、魔术常量
- php,js端获取sessionid的方法
- Winfrom 线程实现 http、https 文件下载 显示下载进度详情
- 哈尔滨工程大学第十四届程序设计竞赛(同步赛)
- winsock2.h与ws2def.h等文件大量报错相关问题解决方法
- Windows 硬盘分区整数大小计算
- linux环境 下载Neo4j
- 杰理AC692X---691X,690X,692X芯片差异(2)
- Au入门系列之五:轨道与轨道控制​
- R 回归 虚拟变量na_R语言实战之R语言基础语法精讲(三)
- Shadow Defender影子卫士
- [JZOJ5987] 仙人掌毒题
- Commonsense and Named Entity Aware Knowledge Grounded Dialogue Generation
- java实现缩放图像、切割图像、图像类型转换、彩色转黑白、文字水印、图片水印等
- INT303 Big Data 个人笔记
- 交互设计软件Framer X for mac软件测评
热门文章
- 『迷你教程』LSTM网络下如何正确使用时间分布层
- Spring 上传文件(apk格式)
- oracle 11g 忘记 默认用户密码
- win11装成win10系统
- 高等数学与python高级应用_高等数学——基于Python的实现
- 还在愁不懂设计模式吗?看过来
- SAP EPIC 银企直连 回单查询(建设银行)
- 【近万字干货】别让你的简历配不上你的才华——手把手教你制作最适合你的简历
- The variance for this alert is **MB which is 20% of the **MB average (**MB is the limit)
- C++ 之 nlohmann::json 一个不错的json库