2

MEAN アプリケーションは初めてです。ここでは、「put」以外の操作 (get、save、delete) を実行できる node-restful ライブラリを使用する REST ベースのサンプル アプリケーションを用意しています。ただし、「put」操作は残りのクライアント (高度な REST、postman) ではうまく機能しますが、angular クライアントではうまく機能しません。

マングースモデル


        var restful = require('node-restful');
        var mongoose = restful.mongoose;

    // スキーマ
        var productSchema = 新しい mongoose.Schema({
          名前: 文字列、
          大学: 文字列,
          年齢: 番号
        });

    // モデルを返す
    module.exports = restful.model('Products', productSchema);

ノードエクスプレスコード


     var express = require('express');
        var methodOverride = require('メソッドオーバーライド');
        var mongoose = require('mongoose');
        var bodyParser = require('body-parser');
        var cors =require('cors');


    // モンゴDB

        mongoose.connect('mongodb://localhost/rest_test');
        var autoIncrement = require('mongoose-auto-increment');

        // 特急
        var app = Express();
        app.use(methodOverride('_method'));
        app.use(cors());
        app.use(bodyParser.urlencoded({ extended: true }));
        app.use(bodyParser.json());

        // ルート
        app.use('/api', require('./routes/api'));

        // サーバーを起動
        app.listen(4000);
        console.log('API はポート 4000 で実行されています');
    

データを更新する角度関数


     $scope.updateData = 関数 (ユーザー ID) {

                $scope.actionData = {
                    「名前」: $scope.name,
                    「大学」: $scope.college,
                    「年齢」: $scope.age
                }


                RoleEditF.updateUserData({
                    ユーザー ID: ユーザー ID
                }, $scope.actionData).then(関数 (応答) {
                    $scope.userData = 応答;
                    console.log($scope.userData)
                    $scope.getData();
                }).catch(関数 (応答) {
                     $scope.error = "ファイルを取得できません (コード: " + response.status + ")。後で試してください。";
                });
            }


    angular.module('myapp')
            .factory('RoleEditF', function (updateS) {
                戻る {

                    updateUserData: 関数 (パラメーター、データ、コールバック) {
                        var cb = コールバック || angular.noop;

                        return updateS.save(parm, data,
                            関数 (解像度) {
                                cb(res) を返します。
                            }、
                            関数 (エラー) {
                                cb(エラー) を返します。
                            }.bind(this)).$promise;
                    }
                }
            }))


 

API を呼び出すファクトリ


     angular.module('myapp')
        .factory('updateS',function($resource) {
          return $resource('http://localhost:4000/api/products/:userId', { userId: '@userId' }, {
            アップデート: {
              メソッド: 'PUT'
            }
          }、{
            stripTrailingSlashes: false
          });
        });

ブラウザで次のエラーが表示されます

「NetworkError: 404 Not Found - http://localhost:4000/api/products/57161e0fe4fbae354407baa3」

4

1 に答える 1