Javascript 使用AJAX将数据从客户端(angular)获取到Node.js
我在controller中有一个函数,它应该从客户端检索Google地图坐标并将其传递给node.js,然后node.js将它们保存到mongoose模式。然而,什么也没有发生。控制器部分如下所示: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
$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);
});
}
}
]);
我希望我能帮忙