Node.js 在前端呈现翻译的短语?(从后端导出短语时出现问题)
我正在使用谷歌的云翻译API在后端翻译一些文本,然后我想在前端呈现这些文本。但是,我在导出翻译的短语时遇到了问题。这是从单据中复制/粘贴的代码;我唯一补充的是出口Node.js 在前端呈现翻译的短语?(从后端导出短语时出现问题),node.js,Node.js,我正在使用谷歌的云翻译API在后端翻译一些文本,然后我想在前端呈现这些文本。但是,我在导出翻译的短语时遇到了问题。这是从单据中复制/粘贴的代码;我唯一补充的是出口 const text = "text"; const target = "en"; translate.translate(text, target) .then((results) => { let translations = results[0]; translations = Array.isArra
const text = "text";
const target = "en";
translate.translate(text, target)
.then((results) => {
let translations = results[0];
translations = Array.isArray(translations) ? translations : [translations];
console.log('Translations:');
translations.forEach((translation, i) => {
console.log(`${text[i]} => (${target}) ${translation}`);
});
module.exports = translations;
})
.catch((err) => {
console.error('ERROR:', err);
});
然后,在我的routes.js文件中,我有:
var translate = require('../translate');
router.get('/', function(req, res){
var translate = translate;
console.log(translate);
res.render('index', { 'translate': translate });
});
将translate打印到控制台会产生“未定义”。由于
translate.translate
是一个异步操作,模块.exports
最初没有任何数据,因此在需要文件时设置为未定义。尝试返回一个函数
。像这样-
translate.js
routes.js
由于translate.translate
是一个异步操作,module.exports
最初没有任何数据,因此在需要文件时设置为undefined
。尝试返回一个函数
。
const text = "text";
const target = "en";
module.exports = function() {
return translate.translate(text, target)
.then(results => {
let translations = results[0];
translations = Array.isArray(translations) ? translations : [translations];
console.log('Translations:');
translations.forEach((translation, i) => {
console.log(`${text[i]} => (${target}) ${translation}`);
});
return Promise.resolve(translations);
});
};
const translate = require('../translate');
router.get('/', function(req, res) {
translate()
.then(translations => {
res.render('index', { 'translate': translations });
})
.catch(error => {
console.log(error);
res.sendStatus(500);
});
});