3

AngularJSリソースを使用して、Expressを実行しているノードjsサーバーにajax投稿を作成しています。ただし、NodeJS側でポストペイロードパラメーターにアクセスできません。

私はサービスを設定しています:

angular.module('app.services', ['ngResource'])
    .factory('PostService', function($resource) {
        return $resource('/postTest');
    });

そして私が持っているコントローラーには:

function UserCtrl($scope, PostService) {
    //query for the users
    $scope.testPost = function() {
        var stuff = {firstname: 'some', lastname:'person'};
        PostService.save(stuff,function(data) {
            console.log('called save on PostService');
        });
    };
}

httpヘッダー内のペイロードを確認できます。

{"firstname":"some","lastname":"person"}

ただし、NodeJSルートにアクセスして処理するとき、パラメーターにアクセスする方法がわかりません。

(ノードコンソールからの出力):テストスタッフの内部req.params undefined

app.post('/postTest', function(req, res) {
        console.log('inside test stuff');
        console.log('req.params ' + req.param('stuff'));
    })

私は次の場所でフィドルを作成しました:http://jsfiddle.net/binarygiant/QNqRj/

NodeJSルートの投稿によって渡されたパラメーターにアクセスする方法を誰かが説明できますか?

前もって感謝します

4

2 に答える 2

3

"{"firstname ":" some "、" lastname ":" person "}"がjsonの投稿の本文にある場合は?

アクセス方法は異なります。

を使用するexpress.bodyParser()と、req.body.firstname名が取得されます

app.use(express.bodyParser());

それで

app.post('/postTest', function(req, res) {
    console.log('inside test stuff');
console.log(req.body.firstname);
})
于 2013-02-26T22:45:52.457 に答える
0

アプリでボディパーサーを設定する必要があります

たとえば、ExpressJs4では

app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));
于 2015-01-17T18:55:32.900 に答える