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));
添加回答
舉報