node.js如何访问已经需要的对象

node.js如何访问已经需要的对象,node.js,caching,require,Node.js,Caching,Require,假设我运行了以下代码: var toType = function(obj){ return ({}).toString.call(obj).match(/\s([a-zA-Z]+)/)[1].toLowerCase(); }; var someModule = require("./path/to/name"); console.log(toType(require.cache["./path/to/name"])); someModule(); module.exports = f

假设我运行了以下代码:

var toType = function(obj){
    return ({}).toString.call(obj).match(/\s([a-zA-Z]+)/)[1].toLowerCase();
};
var someModule = require("./path/to/name");
console.log(toType(require.cache["./path/to/name"]));
someModule();
module.exports = function (){
    console.log("Hell World!");
};
在location./path/to/name.js中,我有以下代码:

var toType = function(obj){
    return ({}).toString.call(obj).match(/\s([a-zA-Z]+)/)[1].toLowerCase();
};
var someModule = require("./path/to/name");
console.log(toType(require.cache["./path/to/name"]));
someModule();
module.exports = function (){
    console.log("Hell World!");
};
这两个代码片段无法运行,所以我想我遗漏了一些东西。输出如下:

node: no process found
undefined
Hell World!
[Finished in 0.1s]
  • 如何要求(“./path/to/name”)映射到
    require.cache
  • 如何检索模块、删除模块并检查其类型

回答代码将不胜感激

至少在节点0.8.2上为非系统导出运行以下工作:

var http = require ('http');
var util = require ('util');
var b = require('./b');

util.inspect(require.cache);

var loaded = require.cache;
注意require.cache是正确的;require.cache()不是(它是一个属性;0.8.2不会编译它。)为此,我看到:

{ '/home/user/node/a.js':
   { id: '.',
     exports: {},
     parent: null,
     filename: '/home/user/node/a.js',
     loaded: false,
     children: [ [Object] ],
     paths:
      [ '/home/user/node/node_modules',
        '/home/user/node_modules',
        '/home/node_modules',
        '/node_modules' ] },
  '/home/user/node/b.js':
   { id: '/home/user/node/b.js',
     exports: [Function],
     parent:
      { id: '.',
        exports: {},
        parent: null,
        filename: '/home/user/node/a.js',
        loaded: false,
        children: [Object],
        paths: [Object] },
     filename: '/home/user/node/b.js',
     loaded: true,
     children: [],
     paths:
      [ '/home/user/node/node_modules',
        '/home/user/node_modules',
        '/home/node_modules',
        '/node_modules' ] } }

我不知道为什么像“http”这样的模块没有出现…

谢谢您的更正,我在文档中注意到了它,并更改了我的问题。很好的答案+1。我看到require被映射到文件系统中的绝对路径。这是正确的吗?