Express 从post方法重定向到get方法如何工作?

Express 从post方法重定向到get方法如何工作?,express,npm,handlebars.js,Express,Npm,Handlebars.js,在mongodb中执行一些查询后,服务器无法识别除post方法之外的任何get请求 express中间件采用post方法,在与数据库交互并使用res.redirect()访问其他get方法后,服务器根本无法识别该请求。我尝试使用res.all()。这表明已看到请求,但未采取任何行动 var express = require('express'); var router = express.Router(); var Product = require('../models/product')

在mongodb中执行一些查询后,服务器无法识别除post方法之外的任何get请求

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方法后,它应该重定向到主页

问题可能不是后端,而是前端。如果您使用AJAX发送POST请求,那么它是专门为不更改url而设计的


在AJAX请求完成后(在.done()中)使用window.location.href以所需路径更新URL,或者在从请求返回HTML时使用JQuery:$('body').replaceWith(数据)

在上面编写示例代码时,我正在从post方法重定向。HTML的表单标签重定向到路由器的post方法,在与数据库交互后,尝试将其重定向回post方法中的get方法,这就是无法使用get方法的问题所在。您使用的是JQuery还是AJAX?很抱歉,我在帖子中没有提到它。我正在使用express中间件。请尝试以下操作:Replace var router=express.router();使用var app=express();然后将router.get和类似的路由更改为app.get,看看这是否有帮助。谢谢,我修复了它。每次交互后,我都会断开mongoose,这会导致其他get方法(使用mongoose)连接无响应。谢谢