2016-05-14 11 views
2

Ich bin neu bei MEAN-Anwendungen. Hier habe ich eine REST-basierte Beispielanwendung mit Node-Restful-Bibliothek, in der ich Operationen ausführen (holen, speichern, löschen) außer 'put'. Die 'put'-Operation funktioniert jedoch gut auf Rest-Clients (Advanced REST, Postman), aber nicht auf eckigen Clients.

Mungo Modell

 


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

    // Schema 
     var productSchema = new mongoose.Schema({ 
      name: String, 
      college: String, 
      age: Number 
     }); 

    // Return model 
    module.exports = restful.model('Products', productSchema); 

Node-Express Code

 


    var express = require('express'); 
     var methodOverride = require('method-override'); 
     var mongoose = require('mongoose'); 
     var bodyParser = require('body-parser'); 
     var cors =require('cors'); 


    // MongoDB 

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

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

     // Routes 
     app.use('/api', require('./routes/api')); 

     // Start server 
     app.listen(4000); 
     console.log('API is running on port 4000'); 

Winkelfunktion die Daten

 


    $scope.updateData = function (userID) { 

       $scope.actionData = { 
        "name": $scope.name, 
        "college": $scope.college, 
        "age": $scope.age 
       } 


       RoleEditF.updateUserData({ 
        userId: userID 
       }, $scope.actionData).then(function (response) { 
        $scope.userData = response; 
        console.log($scope.userData) 
        $scope.getData(); 
       }).catch(function (response) { 
        $scope.error = "Unable to get Files (code: " + response.status + "). Please try later."; 
       }); 
      } 

 


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

        updateUserData: function (parm, data, callback) { 
         var cb = callback || angular.noop; 

         return updateS.save(parm, data, 
          function (res) { 
           return cb(res); 
          }, 
          function (err) { 
           return cb(err); 
          }.bind(this)).$promise; 
        } 
       } 
      }) 


Fabrik aktualisieren API aufrufen

 


    angular.module('myapp') 
     .factory('updateS',function($resource) { 
      return $resource('http://localhost:4000/api/products/:userId', { userId: '@userId' }, { 
      update: { 
       method: 'PUT' 
      } 
      }, { 
      stripTrailingSlashes: false 
      }); 
     }); 

Ich bin immer auf Browser folgende Fehler

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

+0

haben Sie mit http versucht: // localhost: 4000/api/products/57161e0fe4fbae354407baa3 URL in Postbote –

+0

ja, es funktioniert auf Postbote –

Antwort