imp*_*ult 5 javascript module fs node.js npm
有谁知道如何在node.js/javascript中获取模块的名称
所以我们说你这样做
var RandomModule = require ("fs")
.
.
.
console.log (RandomModule.name)
// -> "fs"
Run Code Online (Sandbox Code Playgroud)
我不知道你为什么需要它,但有一种方法。
该module变量会自动加载到每个 node.js 文件中,包含一个名为 的数组children。require该数组包含当前文件中加载的每个子模块。
这样,您需要严格比较加载的引用与该数组中缓存的对象版本,以发现数组的哪个元素对应于您的模块。
看这个样本:
var pieces = require('../src/routes/headers');
var childModuleId = discoverChildModuleId(pieces, module);
console.log(childModuleId);
function discoverChildModuleId(object, moduleObj) {
"use strict";
var childModule = moduleObj.children.find(function(child) {
return object === child.exports;
});
return childModule && childModule.id;
}
Run Code Online (Sandbox Code Playgroud)
这段代码会找到object中的对应关系children并带来它的id。
我将其module作为函数的参数,以便您可以将其导出到文件中。否则,它会向您显示discoverChildModule函数所在的模块(如果它位于同一个文件中,则不会产生任何差异,但如果导出,则会产生任何差异)。
笔记:
../src/routes/headers。你会发现类似的东西:/Users/david/git/...var Schema = require('mongoose').Schema. 可以创建一个能够实现此目的的函数,但它会遇到很多问题。