Node.js 中需要做什么

What require does in Node.js

我想知道如何在其中使用 npm 模块的导出函数,运行 在另一个不需要这些 npm 包的文件中?

第一个文件(将被导出):

    const jwt = require("jsonwebtoken")
    var generateToken = function (){var token = jwt.sign({name:"medo"},"sas");return token}

    module.exports = generateToken

第二个文件(需要函数):

    const token = require("./pack.js")
    console.log(token());

当第二个文件不需要 jsonwebtoken 模块时,该函数如何在第二个文件中成功运行?

这是一棵依赖树。您的代码已加载 ./pack.js。在加载该文件的过程中,它随后加载了模块 jsonwebtoken./pack.js,然后导出它自己的函数 generateToken(),然后您的代码可以调用 generateToken().

generateToken() 执行时,它使用之前导入的 jwt 对象来完成它的工作。

从您的文件中唯一成功调用的是从 ./pack.js 导出的 generateToken() 函数。然后 gererateToken() 函数在它自己的模块范围内执行,在那里它可以访问它需要的东西,例如 jwt.


它类似于操作系统调用中一直发生的事情。您调用操作系统函数来播放音频文件。该操作系统功能然后加载适当的声音驱动程序(如果尚未加载)和用于解压缩声音文件类型的适当的编解码器。您的代码不必加载那些东西。您刚刚调用了 OS 函数来播放声音文件。它是 OS 中该函数的实现,加载所有正确的部分以实际执行该函数。与您的 nodejs 示例相同。