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」