如何根据url更改配置变量

问题描述 投票:0回答:1

我有两个网站,网站EN和websiteDE。它们都在自己的实例上托管在EC2上。他们的网址是:website.en和website.de他们使用自己的数据库网站ENDB和websiteDEDB。

我目前在AWS上使用环境变量作为他们的数据库。

为了省钱,我想在同一个实例上托管这两个网站。我需要从用于浏览网站的URL获取数据库名称。

如何使用快速服务器获取URL并将其传递给我的配置变量?

编辑:比方说我有config.websiteDB = defaultDB如果用户从website.de访问该网站,我想有config.websiteDB = websiteDEDB,如果她从website.en,config访问该网站。 websiteDB =网站ENDB

node.js amazon-web-services express
1个回答
1
投票

以下是我们如何解决它。

我们用了,

https://github.com/mashpie/i18n-node

此外,您可以使用相同的html模板文件,并为不同的语言提供不同的内容。

根据从浏览器收到的语言,您可以选择适当的数据库。

希望能帮助到你。

EDIT1

如果您在下面进行检查,则可以根据cookie,查询字符串参数,语言内容不可用时的后备等设置区域设置等,

i18n.configure({
    // setup some locales - other locales default to en silently
    locales:['en', 'de'],

    // fall back from Dutch to German
    fallbacks:{'nl': 'de'},

    // you may alter a site wide default locale
    defaultLocale: 'de',

    // sets a custom cookie name to parse locale settings from - defaults to NULL
    cookie: 'yourcookiename',

    // query parameter to switch locale (ie. /home?lang=ch) - defaults to NULL
    queryParameter: 'lang',

    // where to store json files - defaults to './locales' relative to modules directory
    directory: './mylocales',

要将cookie设置为所需的语言,

res.cookie('yourcookiename', 'de', { maxAge: 900000, httpOnly: true });

您还可以使用查询字符串参数

/ home?lang = ch

其中lang被定义为locale配置参数。

© www.soinside.com 2019 - 2024. All rights reserved.