首页 > 解决方案 > 在具有多个功能的模块的文件之间共享变量。

问题描述

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

翻译器.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);

提前致谢,圣诞快乐。

标签: javascriptnode.jsnode-modules

解决方案


您必须使变量成为 module.exports 对象的属性:

module.exports.TranslatedOutput = '东西';

这样你就可以像这样导入它:

var TranslatedOutput = 要求('myModule')。翻译输出;


推荐阅读