PUT /更新操作在$资源AngularJS客户端在基于rest的应用程序(mongoose插入/更新问题)失败。

我是新的MEAN应用程序。在这里我有一个基于REST的示例应用程序使用节点宁静的库中,我可以执行操作(获取,保存,删除),除了“放”。 然而,“放”操作在rest客户端(先进的REST,邮递员)上运行良好,但不在angular客户端上运行。

mongoose模型



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

     //架构
         var productSchema = new mongoose.Schema({
          名称:string,
          学院:string,
          年龄:数量
         });

     //返回模型
     module.exports = restful.model('Products',productSchema);

节点expression代码



      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://本地主机/ rest_test');
         var autoIncrement = require('mongoose-auto-increment');

         // performance
         var app = express();
         app.use(methodOverride( '_方法'));
         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上运行');
    

angular度函数来更新数据



      $ 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 =“无法获取文件(代码:”+ response.status +“),请稍后再试。
                 });
             }



     angular.module( 'MyApp的')
             .factory('RoleEditF',函数(updateS){
                返回{

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

                        返回updateS.save(parm,data,
                            function(res){
                                返回cb(res);
                             },
                            函数(err){
                                返回cb(err);
                             } .bind(本))$的承诺;
                     } 
                 }
             })


 

工厂调用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”

它必须在'更新'中

'update': { method: 'PUT' } 

在$ resource()工厂里面

这里的文档https://docs.angularjs.org/api/ngResource/service/$resource

创build自定义“PUT”请求下