if(require.main)的模式适用于Azure的iisnode

时间:2014-11-24 09:06:51

标签: node.js iisnode

模式seen in both Node和Python开发允许模块独立使用和作为模块使用:

function main() {
    // ....
}

if(require.main === module) {
    main();
}

module.exports = {
    start : main
}

不幸的是,这个does not work在Microsoft的Azure云服务上,iisnode别的东西覆盖require.main(不知道是什么)。如何重写检查以在Azure上工作,如果它是主入口点,则启动主模块?

1 个答案:

答案 0 :(得分:0)

我只找到了解决这个问题的黑客解决方案,基本上检测我是否正在运行iisnode:

var onIISNode = require.main.filename.match(/iisnode/);
if(onIISNode || require.main === module){ ... }

欢迎改进......尤其是实际使用NodeJS的官方Azure API的改进