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”请求下