我刚刚开始使用node.js,我有一些Python的经验.在Python中,我可以检查__name__变量是否设置为"__main__",如果是,我知道我的脚本是直接运行的.在这种情况下,我可以运行测试代码或直接以其他方式使用模块.
node.js中有类似的东西吗?
qia*_*iao 90
您可以使用 module.parent来确定当前脚本是否由另一个脚本加载.
例如
a.js:
if (!module.parent) {
console.log("I'm parent");
} else {
console.log("I'm child");
}
Run Code Online (Sandbox Code Playgroud)
b.js:
require('./a')
Run Code Online (Sandbox Code Playgroud)
跑 node a.js将输出:
I'm parent
Run Code Online (Sandbox Code Playgroud)
跑 node b.js将输出:
I'm child
Run Code Online (Sandbox Code Playgroud)
Dav*_*aun 36
接受的答案很好.我在官方文档中添加了这个完整性:
当文件直接从Node运行时,require.main设置为它module.这意味着您可以通过测试确定文件是否已直接运行
require.main === module
Run Code Online (Sandbox Code Playgroud)
对于一个文件"foo.js",这将是true运行node foo.js,但false如果运行require('./foo').
因为module提供了一个filename属性(通常相当于__filename),所以可以通过检查获得当前应用程序的入口点require.main.filename.
| 归档时间: |
|
| 查看次数: |
10893 次 |
| 最近记录: |