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 示例相同。
我想知道如何在其中使用 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 示例相同。