在Node js中正确使用express

时间:2018-01-18 21:06:41

标签: node.js http express

const express = require('express');
const app = express();
app.set('view engine', 'ejs');
app.listen(10000);

function function_a(inp)
{
    var tmp_var = inp;
    console.log(tmp_var) 
    //10 - the first time
    //20 - the second time

    app.get('/pageno1', (req, res) => {
        res.redirect('...');
        //..
        console.log(tmp_var) //10 - on both calls
        //..
    });
}

function start(/* .. */)
{
    //...
    function_a(10);
    function_a(20);
}

假设我有两个简化的函数,如上所示。我的问题是tmp_varapp.get('/pageno1')内的两个调用中都保持相同的值,即使我传递了不同的值。

我想提请你注意两点;

a)我不使用next();(我不确定这是不是问题),

b)我没有'默认'页面(app.get('/', ...)),因为我不需要它(有点奇怪,但这就是我的情况。)我不介意添加一个,如果那是问题。

修改

预期的最终结果是什么:获取传递到URL的URL参数和(例如:example.com/route?=<...>)并将用户重定向到页面。之后在我的代码中完成,在另一个函数中,使用存储的变量并使用从URL和存储的变量获得的参数做一些其他事情。等待下一个GET请求。

我尝试了什么:

app.get('/pageno1', (req, res, next) => {
    res.redirect('https://..');
    //when that is done, move to another function
    //here comes the issue (that other function needs the stored variable)
    //and although its not needed inside `app.get` I need to pass it to the
    //function after thats done.
    function_A(param, req.query);
});

function_A(inp1, inp2)
{
    //do some things
}

如果可以使用本机HTTPS模块完成,我不介意不使用express。 最后,如果不清楚,我想在另一个函数(function_A)中传递局部变量。所以不一定在/ pageno1请求中。但是,在完成pageno1请求之后,我需要本地变量和请求中的req来调用function_A。

如果您需要更好的解释,请随时提问!

0 个答案:

没有答案