2016-11-10 1 views
0

У меня есть серверное приложение nodejs, которое предоставляет API для клиентского приложения. Ранее приложение отправляет запрос AJAX, содержащий параметр действия в объекте запроса, req.body.action, на основной маршрут (я имею в виду «/»), чтобы продолжить действие базы данных по этому параметру. Однако мне нужно изменить/перенаправить маршрут любого запроса AJAX POST с основного маршрута, '/', на конкретный маршрут, '/ {action route}'.Как перенаправить запрос POST на другой маршрут в Nodejs

N.B .: Я хочу разрешить обратную совместимость для каждого пользователя, который не обновил приложение на стороне клиента, чтобы принять это изменение во внимание. т. е. не может изменить код запроса AJAX для этих пользователей.

Я пробовал этот код ниже, но он не работает.

app.use(bodyParser.json()); 

app.post('/', function(req, res){ 
    if((req.body.action) && (req.body.action === 'action-1')){ 
     res.redirect(307, '/action-1'); 
    } 
    if((req.body.action) && (req.body.action === 'action-2')){ 
     res.redirect(307, '/action-2'); 
    } 
}); 


app.post("/action-1", function (req, res) { 
    //would have proceeded the request for action-1 here but it's not routed 
}); 
app.post("/action-2", function (req, res) { 
    //would have proceeded the request for action02 here but it's not routed 
}); 

ответ

0

Вы можете попробовать этот способ:

app.use(bodyParser.json()); 

app.post('/', function(req, res){ 
    if((req.body.action) && (req.body.action === 'action-1')){ 
     return routes.act1(req, res); 
    } 
    if((req.body.action) && (req.body.action === 'action-2')){ 
     return routes.act2(req, res); 
    } 
}); 

app.post("/action-1", routes.act1); 
app.post("/action-2", routes.act2); 

это не перенаправление, но работает.

 Смежные вопросы

  • Нет связанных вопросов^_^