使用NodeJS express模块​​传递变量

时间:2018-05-24 13:57:34

标签: html node.js

我正在使用express模块​​做一些简单的变量传递。

以下是我的代码

    app.get('/dosomething', function(req, res){ 
          var myText = req.query.mytext; //mytext is the name of your input box
          console.log(myText);

          var googleSent = require("./dosomethingelse");
     }); 

基本上,我有一个html表单,它会在提交时向NodeJS发送一些文本。 它成功进入NodeJs,我可以安慰它。但是我无法在 dosomethingelse.js 中使用该变量,我尝试使用module.export但我意识到这并不适合我的情况。

那么有没有解决方案,或者我没有以正确的方式做到这一点?

让我们以另一种方式提出这个问题:

    app.get('/dosomething', function(req, res){ 
        var myText = req.query.mytext; //mytext is the name of your input box
        console.log(myText);

        module.exports.myText = myText;
     });


    app.get('/dosomething2', function(req, res){ 
            console.log(app.mytext)
         });

假设我在第一个app.get得到了我的结果,我希望 dosomething2 能够控制相同的结果,我尝试了上面的代码,但似乎它对我不起作用

2 个答案:

答案 0 :(得分:2)

定义全局变量并在任何文件中使用

app.get('/dosomething', function(req, res){ 

          global.myText = req.query.mytext;
          console.log(myText);
          var googleSent = require("./dosomethingelse");
}); 
你的dosomethingelse文件中的

module.exports=function(){
     console.log('from file',global.myText);
}

答案 1 :(得分:0)

你应该使用一个普通的容器。您可以使用创建容器并将其传递给dosomethingelse或使用单身

// singleton.js
class Singleton {

  set myText(value) {
    this._myText = value;
  }

  get myText() {
    return this._myText;
  }
}
module.exports = new Singleton();

在您的应用中

// app.js
const singleton = require('./singleton');
app.get('/dosomething', function(req, res) {
   singleton.myText = req.query.myText;
   // ....
 });
// dosomethingelese.js
const singleton = require('./singleton');
console.log(singleton.myText);