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被映射到文件系统中的绝对路径。这是正确的吗?