Javascript 使用AJAX将数据从客户端(angular)获取到Node.js

Javascript 使用AJAX将数据从客户端(angular)获取到Node.js,javascript,ajax,angularjs,node.js,mongodb,Javascript,Ajax,Angularjs,Node.js,Mongodb,我在controller中有一个函数,它应该从客户端检索Google地图坐标并将其传递给node.js,然后node.js将它们保存到mongoose模式。然而,什么也没有发生。控制器部分如下所示: $scope.createEvent = function() { $http.post('/api/events', $scope.formData, $scope.latitude, $scope.longitude) .success(functio

我在controller中有一个函数,它应该从客户端检索Google地图坐标并将其传递给node.js,然后node.js将它们保存到mongoose模式。然而,什么也没有发生。控制器部分如下所示:

    $scope.createEvent = function() {
        $http.post('/api/events', $scope.formData, $scope.latitude, $scope.longitude)
          .success(function (data) {
            var latitude = $scope.latitude;
            var longitude = $scope.longitude;
            $scope.formData = {};
            $scope.meetings = data;
            console.log(data);
         })
           .error(function(data) {
             console.log('Error: ' + data);
        });
};
var eventsSchema = new Schema({
  title: String,
  description: String,
  longitude: String,
  latitude: String
});
地图初始化函数的这一部分负责获取坐标

google.maps.event.addListener(map, "click", function (event) {
        $scope.latitude = event.latLng.lat();
        $scope.longitude = event.latLng.lng();
 });
初始化函数也在与$scope.Initialize相同的控制器中定义

routes.js:

app.post('/api/events', function(req, res) {
    Event.create({
        title : req.body.title,
        description: req.body.description
        latitude: req.body.latitude,
        longitude: req.body.longitude
    }, function(err, meeting) {
        if (err)
            res.send(err);
    });
});
以防万一,mongoose模式如下所示:

    $scope.createEvent = function() {
        $http.post('/api/events', $scope.formData, $scope.latitude, $scope.longitude)
          .success(function (data) {
            var latitude = $scope.latitude;
            var longitude = $scope.longitude;
            $scope.formData = {};
            $scope.meetings = data;
            console.log(data);
         })
           .error(function(data) {
             console.log('Error: ' + data);
        });
};
var eventsSchema = new Schema({
  title: String,
  description: String,
  longitude: String,
  latitude: String
});

当用户点击地图时,创建动作触发,所以纬度和经度应该已经知道了,但什么也没发生。如何将此信息发送到节点服务器?

在发布之前,您必须将该值放入范围,然后发布到url。。。 该值可能来自前端,并将该值绑定到范围

 $scope.createEvent = function() {
            $http.post('/api/events', {
            title : $scope.title,
            description: $scope.description
            latitude: $scope.latitude,
            longitude: $scope.longitude 
        })
              .success(function (data) {

                $scope.meetings = data;
                console.log(data);
             })
               .error(function(data) {
                 console.log('Error: ' + data);
            });
    };

我希望这能帮助你…

我的建议是在你的应用程序中创建一个工厂服务

在控制器中调用facotory

app.controller('yourControllerName', ['$scope','Events'
function($scope,Events) {

$scope.createEvent = function(){
  var event = new Events({
        title : $scope.title,
        description: $scope.description
        latitude: $scope.latitude,
        longitude: $scope.longitude 
    });

    event.$create(function(data) {
     $scope.meetings = data;
     console.log(data);
    },function(err){
      console.log(err);
     });

}

 }
]);
我希望我能帮忙