我有两个网站,网站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
以下是我们如何解决它。
我们用了,
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配置参数。