【发布时间】:2020-04-20 21:24:07
【问题描述】:
我有一个 azure http 触发函数,它由客户端调用,带有一些数据和客户端的文化字符串,例如“美国”。 index.js 处理 azure 请求。 myWorker.js 有一个函数 doStuff() 准备数据以返回给客户端。我正在使用 i18next 进行本地化。
index.js 需要将文化字符串传递给 i18next。将 i18next 放在 myWorker.js 中似乎是合乎逻辑的,但它需要在 index.js 调用 doStuff 函数之前加载。如果这是一团糟,请原谅我,但我是 node 新手,不知道设置它的最佳方法。
index.js 如何将culture string 传递给myworker.js,等待i18next 加载,将主要数据传递给dostuff() 并以context.done() 结束?
index.js
module.exports = async function (context, req) {
switch (req.body.data.action) {
case 'doWork':
let myworker = require('./myWorker')(req.body.data.culture) //culture string for i18next
let retval = myworker.dostuff(); //i18next fails as it isn't loaded yet.
context.res = {
status: 200, body: {someData: retval}
};
break;
case 'anotherCommand':
....
}
context.done();
}
myWorker.js
let i18next = require("i18next");
let backend = require("i18next-node-fs-backend");
function dostuff() {
calc some stuff using i18next.t(key);
}
function setup_i18next(cultr) {
i18next
.use(backend)
.init({
fallbackLng: 'en',
lng: cultr,
backend: {
loadPath: 'locales/{{lng}}/{{ns}}.json'
},
ns: ['myspace1', 'myspace2']
})
.then(function (t) {
????
});
}
module.exports = function(cultre) {
setup_i18next(cultre);
return {
dostuff
}
}
【问题讨论】:
标签: javascript node.js azure