如何从 Aurelia 应用程序内部访问 Azure 应用程序设置?
How do I access a Azure application setting from inside an Aurelia application?
我在 Azure 应用服务中托管了一个 Aurelia 应用。我想通过在应用程序设置中定义它来配置 Aurelia 连接到的 api 端点。我如何读取 Aurelia 中的设置?
Aurelia 不是 JavaScript 客户端框架吗,例如all-in-browser 没有后端?应用程序设置是应用服务中的服务器端事物(key-value商店)。没有后端,没有应用程序设置。
通过调用 /settings/{app-setting-name}
:
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...');
});
希望这一切现在更有意义。
正如其他答案和评论中提到的,Aurelia 作为客户端应用程序运行,不了解后端驱动的应用程序。所以像 web.config 或 appsettings.json 这样的概念在没有一些严肃的黑客攻击的情况下是不可用的。你不想去那里。
话虽这么说,当然可以! :) 您几乎可以定义任何您喜欢的设置文件,类似于 ASP.NET(核心)应用程序的 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 插件,只是它的粉丝。
我在 Azure 应用服务中托管了一个 Aurelia 应用。我想通过在应用程序设置中定义它来配置 Aurelia 连接到的 api 端点。我如何读取 Aurelia 中的设置?
Aurelia 不是 JavaScript 客户端框架吗,例如all-in-browser 没有后端?应用程序设置是应用服务中的服务器端事物(key-value商店)。没有后端,没有应用程序设置。
通过调用 /settings/{app-setting-name}
:
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...');
});
希望这一切现在更有意义。
正如其他答案和评论中提到的,Aurelia 作为客户端应用程序运行,不了解后端驱动的应用程序。所以像 web.config 或 appsettings.json 这样的概念在没有一些严肃的黑客攻击的情况下是不可用的。你不想去那里。
话虽这么说,当然可以! :) 您几乎可以定义任何您喜欢的设置文件,类似于 ASP.NET(核心)应用程序的 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 插件,只是它的粉丝。