angular $ http post:无法获取请求参数

时间:2015-05-31 11:21:24

标签: javascript mysql angularjs node.js angular-http

我是初学者......用angular node和mysql创建一个crud应用程序

出于某些原因,我无法获取console.log(request.body.name)console.log(request.body.description)这样的数据我得到505错误..就好像我只是打印console.log('any message')这样会显示而没有任何错误

我在按钮上绑定ng-click="editProductCategory()"

bewlow是editProductCategory()方法

$scope.editProductCategory = function (){

    productCategoryService.updateProductCategory($scope.productCategoryData, productCategoryService.getIdFromUri())
        .success(function (data) {
        if(data && data.status && data.status == 'successful'){
            alert('updated successfully');
        }
        })
        .error(function (err, status) {
        console.log('********************************');
        console.log(err);
        console.log('-------------------------------');
        console.log(status);
        console.log('********************************');
        });
    }

这是我的productCategoryService.updateProductCategory

updateProductCategory: function (productCategory, productCategoryId) {
            console.log(productCategory.name);
            console.log(productCategory.description);
            console.log(productCategoryId);
            return $http.post('/updateProductCategory', {
                name: productCategory.name,
                description: productCategory.description,
                categoryId: productCategoryId
            });

        }

这是路线配置

this.routeTable.push({
        requestType: 'post',
        requestUrl: '/updateProductCategory',
        callbackFunction: function(request, response)
        {
            console.log('/******* arrived successfully ********/');
            //console.log(request.body.description + " no errors");
            //console.log(request.param());

            response.json()
        }
    });

this.routeTable.forEach(function(route){
        if(route.requestType == 'get')
        {
            this.app.get(route.requestUrl, route.callbackFunction)
        }
        else if(route.requestType == 'post' || route.requestType == 'POST   ')
        {
            this.app.post(route.requestUrl, route.callbackFunction);
        }
        else if(route.requestType == 'delete'){}
    });

任何想法?

1 个答案:

答案 0 :(得分:0)

$http.post会将您的数据作为JSON发送,因此如果您使用的是Express,则需要使用bodyParser中间件来解析请求正文。

var express = require('express')
var app = express.createServer();

app.use(express.bodyParser());