使用MEAN堆栈。
我创建了一个mongoose调用来更新mongodb集合中的文档。这是有效的,没问题。但是,当更新完成后,我想通过服务器控制器“简单地”重定向到我的'/ search'页面。
重定向适用于我的另一个mongoose保存调用,这是一个简单的“POST”。
然而,当我在'PUT'之后调用重定向时,重定向使用PUT而不是GET,导致404,无法找到方法PUT / search。这是正确的!但是我不确定为什么选择'PUT'方法。我可以强行'GET'吗?
Chrome控制台日志:
PUT http://localhost:3000/search 404 (Not Found)
angular.js:9827 (anonymous function)angular.js:9628 sendReqangular.js:9344 serverRequestangular.js:13189
processQueueangular.js:13205
(anonymous function)angular.js:14401
Scope.$evalangular.js:14217 Scope.$digestangular.js:14506
Scope.$applyangular.js:21440 (anonymous function)angular.js:3014 eventHandler
我的快递路线使用的是护照,所以需要认证的所有页面都通过我的index.js。 (见要点)。我的mongoose调用所有调用直接从我的视图或控制器通过/ api / ... route进入服务器。
希望这是一个快速解决方案。
我的代码在一个要点。 https://gist.github.com/astemborskim/419d49f0f773fa623a90
客户端控制器 - 调用服务器以执行更新(工作)
$scope.updateProduct = function() {
//$scope.edited.inv = $scope.edited.searchSKU;
$scope.edited.inv.SKU = $scope.edited.SKU;
$scope.edited.inv.Product_Name = $scope.edited.Name;
$scope.edited.inv.Product_Description = $scope.edited.Desc;
$scope.edited.inv.Quantity = $scope.edited.quantity;
$scope.edited.inv.Product_Location = $scope.edited.locations;
//console.log('Edited: ' + JSON.stringify($scope.edited.inv));
//console.log('Not Edited: ' + JSON.stringify($scope.prod.currentProd));
var inventory = new Inventory($scope.edited.inv);
//console.log('edited.inv._id: ' + $scope.edited.inv._id);
inventory.$update({id : $scope.edited.inv._id}, inventory, function (err, results){
if(err){};
console.log(results);
});
}
服务器控制器 - 无法重定向:
module.exports.editInventory = function(req, res){
Product.update({_id : req.body._id}, req.body, function (err, results){
if(err){
req.flash('message', 'Error Updating Product');
console.log('Error Updating Product: ' + err);
throw err;
}
req.flash('message','Product Updated Successfully!');
res.redirect('/search');
});
};
如果您需要其他信息,请与我们联系。
答案 0 :(得分:0)
尝试服务器控制器中的res.send(200);
和客户端控制器回调中的location.reload();
。