Node.js 在前端呈现翻译的短语?(从后端导出短语时出现问题)

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

我正在使用谷歌的云翻译API在后端翻译一些文本,然后我想在前端呈现这些文本。但是,我在导出翻译的短语时遇到了问题。这是从单据中复制/粘贴的代码;我唯一补充的是出口

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);
    });
});