Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/413.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在express中,如何在路线之间传递变量?_Javascript_Node.js_Express - Fatal编程技术网

Javascript 在express中,如何在路线之间传递变量?

Javascript 在express中,如何在路线之间传递变量?,javascript,node.js,express,Javascript,Node.js,Express,我试图将变量从一条快速路线传递到另一条快速路线。变量在POST路由上递增,我试图通过GET路由在前端检索它 我尝试过使用express会话,但值的增量不会超过循环的第一次迭代 app.post('/post-route', (req, res) => { // data passed from form let data = req.body.someArray let variableToPass = 0; // render a success/lan

我试图将变量从一条快速路线传递到另一条快速路线。变量在POST路由上递增,我试图通过GET路由在前端检索它

我尝试过使用express会话,但值的增量不会超过循环的第一次迭代

app.post('/post-route', (req, res) => {
    // data passed from form
    let data = req.body.someArray
    let variableToPass = 0;

    // render a success/landing page
    res.render('/success',{
        title: 'page title'
        data: someData
    });
    // loop
    for(i = 0; i < data.length; i++) {
        // do something with data here
        variableToPass++;
    }
});
使其全球化:

let variableToPass = 0;

app.post("/post-route", (req, res) => {
  variableToPass = 0;
  // ...
});

app.get("/get-route", => {
  res.json({
    data: variableToPass
  });
});

哦,老兄,我想得太多了!这成功了,谢谢!不用担心@senjutsu,总是很乐意帮忙。我讨厌重新打开这个,但我确实发现了一个奇怪的行为。如果我同时或在处理初始post请求时在post路由上发布不同的内容,get路由将根据初始post请求返回变量。是否有一种方法可以区分不同的请求?是的-如果它们都需要相同的时间来执行,您可以
将每个值推入数组,然后每次
将其移出。这是一个相当困难的要求——也许你可以重新接受我的答案(因为它解决了你最初的问题),然后再问另一个问题。
let variableToPass = 0;

app.post("/post-route", (req, res) => {
  variableToPass = 0;
  // ...
});

app.get("/get-route", => {
  res.json({
    data: variableToPass
  });
});