为什么我的角度/快速GET工作但不是POST?

时间:2015-01-06 21:43:32

标签: angularjs express

这是我按钮的设置方式。 Updates.getUpdates正在运作。 Updates.postAnUpdate返回404

$scope.postUpdate = function () {
    console.log($scope.update);
    Updates.postAnUpdate($scope.update);

    Updates.getUpdates().then(function (data) {
        $scope.updates = data;

    });
};

这是我可爱的服务

app.factory('Updates', ['$http',
    function ($http) {
        return {
            //Get the current users messages
            getUpdates: function () {
                return $http({
                    url: '/updates/',
                    method: 'get'
                }).then(function (result) {
                    return result.data;
                });
            },

            postAnUpdate: function (update) {
                return $http({
                    url: '/updates/post',
                    method: 'post',
                    data: {
                        update:update,
                    }
                }).then(function (result) {
                    return result.data;
                });
            }
        };


}]);

这是我处理网址的路线

var updates = require('./routes/updates.js');

//Project Updates
app.get('/updates/', updates.getAll);
app.get('/updates/post', updates.newPost);

最后,这是使用200和控制台文本的代码。

exports.getAll = function (req, res) {
    console.log('It worked');

}

所以一切都应该为帖子工作,但事实并非如此。我只是想做一个控制台命令,所以我知道它有效,我得到了404

exports.newPost = function (req, res) {
    var db = mongo.db,
        BSON = mongo.BSON,
        newPost = {};


    console.log('This is giving me 404 instead of showing up in terminal');


        newPost.content = req.body.update;
        newPost.author = req.user._id;
        newPost.date = new Date();

        db.collection('updates').save(newPost, function (err, result) {
            if (err) {
                throw err;
            }


            console.log(result);
        });

}

1 个答案:

答案 0 :(得分:1)

看起来这是一个简单的排版错误。在你的路线:

app.get('/updates/', updates.getAll);
app.get('/updates/post', updates.newPost);

我想你想要

app.post('/updates/post', updates.newPost);