概述

本课主要讲解如何用 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 模块详解相关推荐

  1. Node.js npm 详解

    一.npm简介 安装npm请阅读我之前的文章Hello Node中npm安装那一部分,不过只介绍了linux平台,如果是其它平台,有前辈写了更加详细的介绍. npm的全称:Node Package M ...

  2. Node.js 入门详解 (三)

    目录 1. 初识Express 1.1 Express简介 1.1.1 什么是Express 1.1.2 进一步理解 Express 1.1.3 Express能做什么 1.1.4 Express 中 ...

  3. 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 ...

  4. Node.js 入门详解(四)

    数据库与身份认证 1. 数据库的基本概念 1.1 什么是数据库 1.2 常见的数据库及分类 1.3 传统型数据库的数据组织结构 1.3.1 Excel的数据组织结构 1.3.2 传统型数据库的数据组织 ...

  5. node.js Promise详解(尚硅谷李立超老师视频笔记)

    • Promise就是一个用来存储数据对象,但是由于Promise存取的方式的特殊,所以可以直接将异步调用的结果存储到Promise中 Promise存储异步数据: function sum(a,b) ...

  6. python的threading库_python标准库介绍——31 threading 模块详解

    threading 模块 (可选) ``threading`` 模块为线程提供了一个高级接口, 如 [Example 3-1 #eg-3-1] 所示. 它源自 Java 的线程实现. 和低级的 ``t ...

  7. Node.js「一」—— Node.js 简介 / Node.js 模块 / 包 与 NPM

    本文为 Node.js 系列笔记第一篇.文章参考:nodejs 教程 -- 大地:<深入浅出 Node.js>:阮一峰 nodejs 博客 文章目录 一.Node 简介 1. 简单介绍 2 ...

  8. 【ES6】Module模块详解

    [ES6]Module模块详解 一.Module的由来 二.严格模式 三.export命令 四.import命令 查看更多ES6教学文章: 参考文献 引言:由于两个JS文件之间相互使用必须通过一个ht ...

  9. Node.js 模块之Nimble流程控制

    NodeJS异步的特性有时候会导致程序非常的难看,回调一层套着一层,这个时候就要用流程控制模块来控制究竟是同步还是异步了. Nimble是一个轻量.可移植的函数式流程控制模块.经过最小化和压缩后只有8 ...

最新文章

  1. DOM manipulation
  2. 【物联网】QCA4010开发环境的搭建
  3. 跨平台开发框架到底哪家强?5款主流框架横向对比!
  4. php websocket应用实例,php使用websocket示例详解
  5. intouch负值显示0_excel表格数据为负值取0-在EXCEL表格中怎么把负数显示为0?公式怎么设置?...
  6. mysql 创建表格time类型_记一次关于 Mysql 中 text 类型和索引问题引起的慢查询的定位及优化...
  7. (转)Spring如何装配各种集合类型的属性
  8. netbeans 添加gif图片_告别PC 用手机完成各种GIF动画编辑
  9. python的循环控制_控制for循环(python)
  10. 远程计算机已结束连接解决方法
  11. linux root身份执行命令,用root的身份去执行一个命令
  12. AD(PCB)知识总结
  13. [国家集训队] 矩阵乘法
  14. python 提取字幕_使用 Python 提取字幕文件
  15. PS钢笔--制图抠图
  16. openwrt 配置过程
  17. Percona-XtraBackup系列一:安装 perl(Time::HiRes) is needed by percona-xtrabackup-2.2.10-1.el6.x86_64...
  18. 前端面试题 Doctype作用是什么?严格模式与混杂模式如何区分?他们之间有何意义?
  19. 存储过程和触发器-LOGON/LOGOFF触发器
  20. 操作系统基本原理 操作系统的功能

热门文章

  1. springboot----利用百度地图API进行电子打卡
  2. 数字货币承兑行情分析
  3. 星起航:抖音小店商家体验分和DSR评分,具体是指什么呢?
  4. winpcap的VC6.0运行环境配置
  5. Python学习笔记(二)Excel保存数据
  6. sql语句中的字符串函数
  7. How Big Data Can Help Save the World
  8. 人效九宫格|三个提升路径,三种管理模式,让人效实时可量化
  9. C++ openssl ECDSA签名
  10. 营销互动保障 - 捉猫猫在未知中前行