我有那些文件
/Controller/sub_module/conversation.js
var test = [];
function push(){
test.push(test.length);
}
module.exports = {
push,
getTest(){
return test;
}
}
/index.js(从根开始)
require('../chatserver/Controller/sub_module/conversation').push();//push new item to test variable
,然后在/Controller/index.js
const test1 = require('../Controller/sub_module/conversation').getTest();//return [0]
const test2 = require('./sub_module/conversation').getTest(); //return []
test1和test2没有指向同一参考,为什么? 节点8.11.3 IDE Webstorm Debug image
答案 0 :(得分:2)
感谢@ T.J。Crowder:this。
我认为所有相对路径都将转换为用于名称缓存的绝对路径,并且在此转换中,相对路径的未指定部分将是自动小写字母。
因为该节点将考虑
require('./sub_module/conversation') //the unspecified part is 'Controller' will be convert to 'controller'
与
相同require('../controller/sub_module/conversation')
但与
不同require('../Controller/sub_module/conversation')
答案 1 :(得分:-1)
require
d模块不应用作单例存储。在节点中,require()
仅在您需要该模块使用的文件位于同一目录中时,才对同一模块返回相同的引用。否则,甚至This post.