在需要时运行不同的代码而不是直接传递给节点CLI

时间:2015-01-08 13:29:15

标签: node.js

我认为可以区分文件是否需要或直接传递给节点?

E.g:

//foo.js
if( ???? ){
  console.log( "This file was required" );
else{
  console.log( "This file was run directly" );
}

输出"此文件是必需的"当一些其他文件需要它像这样

//baz.js
var foo = require('foo.js');

并输出"此文件直接运行"直接传递给节点时:

$ node foo.js

条件应该是什么样的?

1 个答案:

答案 0 :(得分:3)

您可以查看module.parent以查看它是全局运行还是必需运行。

documentation

  

需要此模块的模块。

如果不需要,则表示module.parent不存在。

if (module.parent) {
    console.log('File is being required.');
} else {
    console.log('File is being run directly.');
}