是否可以确保 iisnode 在 Azure 中遵守 NODE_PATH?

Is it possible to ensure iisnode respects NODE_PATH in Azure?

希望能够进行非相对导入的情况并不少见,例如,用于配置等...

在 运行 节点可执行文件的世界中(开发环境,任何云提供商......诸如此类),您可以简单地设置一个环境变量并让节点运行时尊重它。

想象一下这样的项目结构: 距离 |--富 |--栏 |--巴兹 app.js |--配置

在 app.js 和 NODE_PATH=dist 中,我可以简单地 require('config') 并得到我需要的东西。

在 Azure 应用服务中,它似乎忽略了应用程序设置中的 NODE_PATH。是不是少了什么或者这不可能?

在 Azure 应用服务中,您可以通过以下步骤在 Azure 门户中设置 NODE_PATH 环境变量。

1、创建D:\home\site\my_node_modules\config目录,将index.js文件放在那里。在这种情况下,我只导出 "name" 变量。

// D:\home\site\my_node_modules\config\index.js
var name = "foobar";
// export it
exports.name = name;

2,在 Azure portal 中导航到您的 App Service,单击 SETTING 菜单中的 Application settings,然后设置 NODE_PATH 变量如下:

3、在app.js文件中,你可以简单地require('config')这样:

var http = require('http')
var config = require('config')

http.createServer(function (req, res) {
    res.end(config.name)
}).listen(process.env.PORT || 3000)

4、终于可以正常使用了