簡體   English   中英

Mongoose,Angular,Express PUT不起作用

[英]Mongoose, Angular, Express PUT won't work

我試圖實現一個簡單的編輯功能,它將無法正常工作。 我刪除並開始工作。 我在put請求中一直收到500錯誤。 我嘗試過findIdAndUpdate,我也嘗試過FindOne。 我得到的錯誤是它無法加載資源。 但是,如果我做一個獲取請求它工作正常。 如果這有所不同,則get請求也返回304。

如果我用curl發送請求,我會得到TypeError: Cannot read property 'id'

控制器和服務

app.factory('gameService', function($resource){
    return $resource('/api/games/:id', {id:'@id'},
        {'update': {method:'PUT'}}
    );
});

app.controller("gameController", function($scope, $http, gameService){
    $scope.games = [];
    $scope.newGame = {name: '', platform: ''};
    $scope.editMode = false;

$scope.games = gameService.query();

$scope.edit = function(game){
    $scope.editMode = true;
    $scope.newGame = gameService.get({id: game._id});
};

$scope.update = function(){
gameService.update({id: $scope.newGame._id}, function(response){
        $scope.games = gameService.query();
        $scope.newGame = {name: '', platform:''};
    });
    $scope.editMode = false;
};
});

API /快速/貓鼬

router.put('/games/:id', function(req, res, next) {
    Game.findById(req.parms.id, function (err, game) {
        if (err) {
            return res.send(err);
        }
        game.name = req.body.name;
        game.platform = req.body.platform;
        game.save(function(err){
            if (err) {
                return res.send(err);
            }
            res.json({message:'Game Updated'});
        });
    });
});

HTML

<input required type="text" placeholder="Game Name" ng-model="newGame.name" /> <br/><br/>
<input required type="text" placeholder="Platform" ng-model="newGame.platform" /> <br/><br/>
<input class="button" type="submit" value="Post" ng-click="post()" ng-hide="editMode" />
<input class="button" type="submit" value="Update" ng-click="update()" ng-show="editMode"/>

模型

var mongoose = require ('mongoose');
var GameSchema = new mongoose.Schema({
    name: String,
    platform: String
});

mongoose.model ('Game', GameSchema);

req.parms.id應該是Mongoose / Express API路由中的req.params.id

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM