使用Angularjs Expressjs Node和MEAN.js

时间:2015-05-27 09:02:00

标签: javascript angularjs node.js express mean-stack

我想在$ 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);
   });   };

1 个答案:

答案 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