Express 从post方法重定向到get方法如何工作?
在mongodb中执行一些查询后,服务器无法识别除post方法之外的任何get请求 express中间件采用post方法,在与数据库交互并使用res.redirect()访问其他get方法后,服务器根本无法识别该请求。我尝试使用res.all()。这表明已看到请求,但未采取任何行动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')
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)连接无响应。谢谢