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