如何根据url更改配置变量

时间:2018-01-04 18:34:49

标签: node.js amazon-web-services express

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

我目前正在AWS上为其数据库使用环境变量。

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

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

编辑: 让我们举个例子说我有config.websiteDB = defaultDB 如果用户从website.de访问该网站,我想有config.websiteDB = websiteDEDB,如果她从website.en访问该网站,则config.websiteDB = websiteENDB

1 个答案:

答案 0 :(得分: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 });

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

  

/家?LANG = CH

其中lang被定义为语言环境配置参数。