如何将路由参数传递给另一个路由,以便我可以获取它

时间:2018-02-15 18:59:54

标签: reactjs express

我想要完成的是有一个名为“订单号”的输入框,用户可以输入订单号并点击提交。当他们点击提交时,它会重定向到另一个页面,根据输入框上一页上输入的订单号,可以捕获字段。

到目前为止我所知道的是:

  • 将帖子请求传递给/ route,该路由是输入框所在的页面,供用户输入订单号。
  • 在帮助下,我设法在下一页的网址中传递orderNum

我所坚持的是试图找出如何获取我在URL中传递给服务器上新路由的orderNum。一旦我可以获取它,我将知道如何将其设置为状态并使用orderNum填充框

希望足够清楚

我的尝试:

app.post('/', function(req, res){
    request.query("select [TableId] FROM [SACH_QA].[Orders].[Order] where [TableId] ='" + req.body.orderNum + "'", function(error, result){
        if(error){
            throw error;
        } else {
            //console.log(result);
            res.redirect('/relotoForm');
        }
    });
});

app.post('/reloToForm', function(err, res){
    if(err){
        throw err;
    } else {
        // How can I have access to req.body.orderNum from / on this request?
    }
});

查看:

onSubmit(e){
    if(this.state.orderNum === '') {
        this.setState({
            errorMsg: 'Please enter an order number.'
        });
        e.preventDefault();
    } else {
        this.setState({
            errorMsg: ''
        });
        
        console.log('passed');
        // Submit the form

        const reloData = {
            orderNum: this.state.orderNum
        }

        fetch('/', {
            method: 'POST',
            headers: {'Content-Type': 'application/json'},
            body: JSON.stringify(reloData)
        }).catch(function(err){
            console.log(err);
        })
            
    }
    //e.preventDefault();
}

1 个答案:

答案 0 :(得分:0)

我认为你可以这样做一条路线:

app.post('/', function(req, res){
        request.query("select [TableId] FROM [SACH_QA].[Orders].[Order] where [TableId] ='" + req.body.orderNum + "'", function(error, result){
            if(error){
                throw error;
            } else {
                //console.log(result);
                res.redirect('/relotoForm' + '?orderNum=' +req.body.orderNum);
            }
        });
    });

在这里你可以作为orderNum访问它:

app.post('/reloToForm', function(err, res, req){
            if(err){
                throw err;
            } else {
                console.log(req.query.orderNum)
            }
        });

我希望它会起作用,并没有自己尝试