在nodejs中使用!module.parent

时间:2013-12-25 06:35:44

标签: node.js

请告诉我们为什么在节点中使用!module.parent。为什么Node.js访问父模块

if (!module.parent) {
  app.listen(3000);
  console.log('listening on port 3000');
}

2 个答案:

答案 0 :(得分:12)

我找到了答案。 您可以使用module.parent来确定当前脚本是否由另一个脚本加载。 示例如下:

a.js:

if (!module.parent) {
    console.log("I'm parent");
} else {
    console.log("I'm child");
}

b.js:

require('./a')
run node a.js will output:

I'm parent
run node.b.js will output:

I'm child

答案 1 :(得分:4)

在分层编程范例中,许多任务在更高层次的框架中完成,它提供了更好的性能和效率。这同样适用于此。如果正在运行的模块的父对象未侦听任何端口,则此任务由其子对象显式完成。