在具有多个功能的模块文件之间共享变量。

时间:2018-12-11 14:31:12

标签: javascript node.js node-modules

我有一个module.exports里面有多个功能。 我了解的是,可以将变量共享到另一个文件。 但是我似乎无法正常工作。

translator.js

module.exports = {
  translatorfunc: function (message, queryInput, callback) {


    var parameters = {
      text: queryInput
    };

    var parameters = {
      text: queryInput,
      model_id: 'es-en'
    };

    languageTranslator.translate(
      parameters,
      function (error, response) {
        if (error)
          bot.reply(message, 'Cannot find language that should understand this.')//console.log(error)
        else
          var TranslatedOutput = response.translations[0].translation;
        assistant.message({
          input: { 'text': TranslatedOutput }
        }, function (err, response) {
          if (err)
            console.log('error:', err);
          else
            queryOutput = response.output.text[0];
          var parameters = {
            text: queryOutput,
            model_id: 'en-es'
          };
          languageTranslator.translate(
            parameters,
            function (error, response) {
              if (error)
                bot.reply(message, 'Cannot find language that should understand this.')//console.log(error)
              else
                TranslatedOutput = response.translations[0].translation;
            }
          )
        });
      }
    )
  }
}

我要发送到另一个文件的变量是TranslatedOutput

我也尝试将函数languageTranslator.translate包装为一个函数,但是当我调用变量时,它说未定义。

并获取变量

var translator = require('./tools/translator')
console.log(translator.translatorfunc.TranslatedOutput);

在此先感谢您和圣诞节快乐。

1 个答案:

答案 0 :(得分:0)

您必须将变量设为module.exports对象的属性:

module.exports.TranslatedOutput ='某物';

这样,您可以像这样导入它:

var TranslatedOutput = require('myModule')。 TranslatedOutput;