как правильно отправлять и получать данные формы в приложении angular/node

Я пишу приложение на основе шаблона mean.js.

У меня есть форма в моем угловом представлении, которой нужно отправить некоторые данные формы:

 <form name="form" ng-submit="postUpdate()">
                <div class="form-group">
                    <fieldset>
                        <legend><strong>Salesforce Opportunity</strong> </legend>
                        <div class="col-sm-6">
                            <label for="opportunityId">Opportunity ID</label>
                            <input id="kw" name="opportunityId" type="text" placeholder="kw" class="form-control" ng-model="kwRequired"/>
......

В моем угловом контроллере у меня есть это:

$scope.postUpdate = function(){
            var posturl = '/salesforce_update';
            console.log('kwRequired  ' + $scope.kwRequired);
            var postData = {kw: $scope.kwRequired};
            $http.post(posturl,postData);
        }

Затем в моем серверном узле/экспресс-коде у меня есть этот обработчик:

....

app.use(bodyParser.json());
    app.use(bodyParser.urlencoded({ extended: false }));
......


app.post('/salesforce_update', function(req, res){
        console.log('Salesforce update Request Received');
        console.log('_parsedUrl.query:  ' + req.body.kw);
    });

Я отлично передаю запрос на сервер, но после проверки тело запроса пусто.

Что мне не хватает?


person Eugene Goldberg    schedule 11.06.2015    source источник
comment
вы проверяете вкладку сети в инструментах chrome dev, чтобы увидеть, отправлено ли тело запроса?   -  person user3227295    schedule 11.06.2015


Ответы (1)


Вам нужно использовать метод angular.toJson следующим образом:

$scope.postUpdate = function(){
    console.log('kwRequired  ' + $scope.kwRequired);
    var postData = {kw: $scope.kwRequired};
    var json = angular.toJson(postData); 
    $http.post('/salesforce_update', json);
}

Также не забудьте определить app.use(bodyParser.json()); перед определением app.post('/salesforce_update', function ....

person Jossef Harush    schedule 11.06.2015
comment
Я сделал настройку, как описано, но на стороне node/express тело запроса по-прежнему пусто - в нем есть только proto и никаких других атрибутов. - person Eugene Goldberg; 11.06.2015