Как работает перенаправление из метода post на метод get? - PullRequest
0 голосов
/ 17 октября 2019

Сервер не распознает ни одного запроса get, кроме метода post, после выполнения некоторых запросов в mongodb.

Средство промежуточного программного обеспечения Express принимает метод post и после взаимодействия с базой данных и использования res.redirect() чтобы получить другие методы get, сервер вообще не распознает запрос. Я пытался использовать res.all (). Это показало, что запрос был замечен, но никаких действий предпринято не было.

var express = require('express');
var router = express.Router();

var Product = require('../models/product');

router.get('/', function(req, res, next) {`//homepage
    res.render("index");
}

router.post('/add',function(req,res next){  
    //Product model
    var prod = new Product({
        //data here
    });

    prod.save(function(err,res2){
        if(err){
            console.log(err);
            return res.redirect('/error');
        }
        else{
            mongoose.disconnect();
            console.log("Complete1");
            return res.redirect('/');
            console.log ("Complete2);
        }
    }); 
}

После того, как я доберусь до метода post, он должен перенаправить на домашнюю страницу

1 Ответ

1 голос
/ 18 октября 2019

Проблема может быть не в бэкэнде, а в фронтэнде. Если вы используете AJAX для отправки вашего запроса POST, он специально разработан, чтобы не изменять ваш URL.

Используйте window.location.href после того, как запрос AJAX завершен (в .done ()), чтобы обновить URLс нужным путем, или используйте JQuery: $ ('body'). replaceWith (data), когда вы получаете HTML обратно из запроса

...