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」