是否可以使用 C++/napi 等在标准 nodeJS 对象例如“fs”上创建新方法?

问题描述

我有兴趣为 nodeJS 制作我的第一个原生 C/C++ 插件

从概念上讲,它是一种作用于路径或文件描述符的文件系统方法,与 fs.stat() 和朋友密切相关。

通过阅读文档和查看 N-API 示例,我无法确定是否可以或绝对不可能创建新方法

有人知道这是否可以完成,或者我是否必须使其独立?

解决方法

我认为唯一的方法是“包装”你想要扩展的对象。

基本上创建一个新模块“fs2”,它通过所有对“fs”的标准调用,该调用由您的新模块required,但也添加您的新调用,或替换您希望增加的调用,使用您的 N-API 调用。

使用你的模块的代码只需要使用

let fs = require("fs2");

代替

let fs = require("fs");

我不确定是否有多种方法可以包装 nodeJS 模块来实现这一点,或者是否有一种明显的最佳方法。我敢肯定还有其他 SO 问题涵盖了所有这些。