gpt4 book ai didi

node.js - 在 express js 中转发查询

转载 作者:搜寻专家 更新时间:2023-11-01 00:39:20 25 4
gpt4 key购买 nike

我试图将一些请求转发给另一个处理程序:

route.get("/tag/:id",function(req,res,next){
req.url="/posts?tag_id="+req.params.id
next('route')
})

route.get("/posts",function(req,res,next){
console.info(req.query);
})

第二个处理程序中的query 为空。

如何解决?

最佳答案

req.query 是空的,因为您手动设置了 url,它不会再次被解析。

如果调用了第二个处理程序,但只有 req.query 未设置,则代替:

route.get("/tag/:id", function (req, res, next) {
req.url = "/posts?tag_id=" + req.params.id;
next('route');
});

你可以试试:

route.get("/tag/:id", function (req, res, next) {
req.url = "/posts?tag_id=" + req.params.id;
req.query = {tag_id: req.params.id}; // or whatever you want
next('route');
});

或:

route.get("/tag/:id", function (req, res, next) {
req.url = "/posts?tag_id=" + req.params.id;
req.query = url.parse(req.url, true).query;
next('route');
});

如果它在您的处理程序中使用,那么您可能还需要更新 req.paramsreq.pathother request properties .

关于node.js - 在 express js 中转发查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40649833/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com