2 回答
TA贡献1775条经验 获得超11个赞
不建议在 http 回调中这样做。解决您的问题的最佳解决方案是导入所有可用语言,并为每个请求仅使用首选语言。
例子:
在您的mail-templates/index.js:
import * as en from './en';
import * as es from './es';
const defaultLanguage = 'en';
const availableLanguages = { en, es };
function getMailByLanguage(language) {
return availableLanguages[language] || availableLanguages[defaultLanguage];
}
module.exports = getMailByLanguage;
当您想使用它时,只需执行以下操作:
import * as MailTemplates from './mail-templates';
app.get("/", (req, res) => {
const language = req.headers["language"];
const Mail = MailTemplates.getMailByLanguage(language);
// Do your stuff's here
...
});
TA贡献1810条经验 获得超4个赞
您需要在请求处理程序函数中 require 模块。
如果使用快速服务器,您可以尝试这样的操作。
app.get("/", async(req, res) => {
const language = req.headers["language"] || "en";
const module = `./${language}.js`;
const greet = require(module);
res.json(greet());
}
)
REPL 链接。 https://repl.it/repls/UsedSelfishVisitor
您可以运行以下代码段来检查基于language标题的响应
//Fetching data using laguage: es
fetch("https://UsedSelfishVisitor--five-nine.repl.co", {
method:"GET",
headers: {
language: "es"
}
}).then(res => res.json()).then(data => console.log(data));
//Fetching data using language: en
fetch("https://UsedSelfishVisitor--five-nine.repl.co", {
method:"GET",
headers: {
language: "en"
}
}).then(res => res.json()).then(data => console.log(data));
添加回答
举报