I did some research but all the responses that i get didn't resolved my problem. Basically, i have the following code:
public static load(lang: string, staReplace: boolean, callback?: (message: string, error?: string) => void) {
if (!TranslateSingleton.languageFile) {
TranslateSingleton.languageFile = new Map<string, Object>();
}
lang = lang.toLowerCase();
if (!TranslateSingleton.languageFile.has(lang) || staReplace === true) {
try {
let strBody: string = fs.readFileSync(AppConfig.APP_SERVER_DIRETORIO + '/languages/language-' + lang + '.json', 'utf8')
TranslateSingleton.languageFile.set(lang, JSON.parse(strBody));
callback('OK', null);
} catch (ex) {
AppLog.error('IDIOMA NÃO ENCONTRADO ==>', AppConfig.APP_SERVER_DIRETORIO + '/languages/language-' + lang + '.json');
callback(null, '## IDIOMA [' + lang + '] não disponível! ##');
}
}
}
And when the 'load' function is called, i always get the response:
1) In the TS TranslateSingleton file:
TranslateSingleton.load(lang, false, null);
2) In another controller:
TranslateSingleton.load(resultToken.lang, true, (resultMessage, errorMessage) => {
if (errorMessage) {
resolve(super.trataErro(res, errorMessage));
} else {
resolve(super.trataRetorno(req, res, resultMessage));
}
});
And, then, my response:
[2020-06-10T11:47:06.257] [ERROR] default - [APPLOG] IDIOMA NÃO ENCONTRADO ==> [ './../languages/language-pt-br.json' ]
[2020-06-10T11:47:06.259] [ERROR] default - [APPLOG] Erro ao recuperar a chave: "AUDITORIA.REGISTRO_AUDITORIA", [ TypeError: callback is not a function
at Function.TranslateSingleton.load (C:\Users\emmanuel.oliveira\Documents\AgenciaWeb\aw-server\bin\util\translate.js:24:17)
at TranslateSingleton.__ (C:\Users\emmanuel.oliveira\Documents\AgenciaWeb\aw-server\bin\util\translate.js:44:32)
at C:\Users\emmanuel.oliveira\Documents\AgenciaWeb\aw-server\bin\service\auditoria.service.js:423:62
at C:\Users\emmanuel.oliveira\Documents\AgenciaWeb\aw-server\bin\service\base\base.service.js:374:29
at custExecuteCb (C:\Users\emmanuel.oliveira\Documents\AgenciaWeb\aw-server\node_modules\oracledb\lib\connection.js:182:7) ]
Can someone give me a light in this?
Solved this issue by taking the following steps:
1) Changed the calling function
TranslateSingleton.load(lang, false, (a, b) => { });
2) Changed the path to root directory (only for dev instance)
PRD -> ./
DEV -> ./../