如何从Aurelia应用程序中访问Azure应用程序设置?

时间:2018-04-09 19:55:09

标签: azure aurelia

我有一个Aurelia应用程序,我在Azure应用程序服务中托管。我想通过在应用程序设置中定义它来配置Aurelia连接的api端点。如何在Aurelia中阅读该设置?

2 个答案:

答案 0 :(得分:2)

Aurelia不是JavaScript客户端框架,例如所有在浏览器中没有后端?应用程序设置是App Service中的服务器端事物(键值存储)。没有后端,没有应用程序设置。

考虑通过调用/settings/{app-setting-name}来返回应用程序设置的 restify 最小后端

var restify = require('restify');

function respond(req, res, next) {
  // Returns app setting value.
  // Provides zero input validation,
  // DO NOT COPY PASTE INTO PROD,
  // ALL YOUR BASE WILL BELONG TO US.
  res.send(process.env[req.params.setting]);
  next();
}

var server = restify.createServer();
server.get('/settings/:setting', respond);
server.head('/settings/:setting', respond);

server.listen(process.env.PORT || 3000, function() {
  console.log('restify listening...');
});

希望现在这一切都更有意义。

答案 1 :(得分:2)

正如其他答案和评论所提到的,Aurelia作为客户端应用程序运行,并且不了解后端驱动的应用程序。所以没有一些严重的黑客攻击,这里没有像web.config或appsettings.json这样的概念。你不想去那里。

话虽如此,当然可以! :)您几乎可以定义您喜欢的任何设置文件,类似于ASP.NET(Core)应用程序的appsettings.json概念,但随后在Aurelia中。

一个很好的例子是Aurelia开源插件 Aurelia-Configuration

简单的说明是您首先将您喜欢的任何.json文件(如config.json)添加到项目中。接下来,在Aurelia初创公司注册:

export function configure(aurelia) {
    aurelia.use
        .standardConfiguration()
        .developmentLogging()
        .plugin('aurelia-configuration'); // <-- there you go

    aurelia.start().then(a => a.setRoot());
}

最后,只需使用AureliaConfiguration读出值。下面的示例通过依赖注入来说明它:

import {inject} from 'aurelia-framework';
import {AureliaConfiguration} from 'aurelia-configuration';

@inject(AureliaConfiguration)
export class MyComponent {
    constructor(config) {
        this.config = config;

        this.config.get('endpoint');
    }
}

README解释了这一切。

注意:我并不隶属于aurelia-configuration插件,只是它的粉丝。