在nodejs中使用!module.parent

Dil*_*eni 10 node.js

你能解释我们为什么在节点中使用!module.parent吗?为什么Node.js访问父模块

if (!module.parent) {
  app.listen(3000);
  console.log('listening on port 3000');
}
Run Code Online (Sandbox Code Playgroud)

Dil*_*eni 13

我找到了答案.您可以使用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
Run Code Online (Sandbox Code Playgroud)

  • 但这有什么含义呢?如果它是作为一个孩子运作,它有什么相关性? (2认同)

小智 4

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