我想在$ resource方法中将数组传递给$ save,然后在我的服务器控制器中接收它以修改数据库中的数据。
我可以在GET中传递一个变量,它运行得很好! 但我想通过的数组似乎无法正常工作!
我的控制台中没有收到任何错误 我正在使用MEAN.js,POST和GET请求似乎都在工作(绿色200),但是当我调用req.body.variable1访问我通过$ save方法传递的变量时,它无效。
我可以在同一页面同时使用POST和GET方法吗?
我将非常感谢能够为此提供正确答案的任何帮助或提示。 谢谢!
资源工厂
angular.module('alls').factory('Alls', ['$resource', function($resource) {
return $resource('alls/:issuename', {issuename: '@issuename'},
{
get:{ method: 'GET', isArray:true }
});
}]);
客户端控制器
angular.module('alls').controller('AllsController', ['$scope', '$stateParams', '$location', 'Authentication', 'Alls',
function($scope, $stateParams, $location, Authentication, Alls ) {
$scope.search = function(){
Alls.get({issuename: $scope.issueinput},function(response){
$scope.alls = response;
});
var myArray = new Alls ({
variable1: 'Blue',
variable2: 'Red'
});
myArray.$save();
};
} ]);
服务器路由
module.exports = function(app) {
var alls = require('../../app/controllers/alls.server.controller');
app.route('/alls')
.get(alls.list)
.post(alls.list);
app.route('/alls/:issuename')
.get(alls.list)
.post(alls.list); app.param('issuename', alls.searchfun); };
服务器控制器
exports.searchfun = function(req, res, next, id) {
req.alpha = id;
next();
};
exports.list = function(req, res) {
var colorVar = req.body.variable1;
var searchParam = req.alpha;
mongoose.model(searchParam).find({ color: colorVar }).sort('-created').exec(function(err, alls) {
res.jsonp(alls);
}); };
答案 0 :(得分:2)
看起来你的$ resource url和你的$ route不匹配。根据您的文件夹结构,您需要在$ resource url中添加斜杠...
return $resource('/alls/:issuename', {issuename: '@issuename'},
{
get:{ method: 'GET', isArray:true }
});
}]);

...或(更有可能)修复您的路线。请参阅此答案以供参考...... AngularJS and nodeJs Express: routes and refresh