2016-05-26 2 views
0

У меня есть список служб отдыха с NodeJS и MongoDB. Один из них службы выполнить $ около MongoDB запроса к retrive всех элементов в определенный диапазон от конкретной позиции

router.route("/api/geo_cars") 
.get(function(req,res){ 
    var max = 1000; 
    var response = {}; 
    mongoOOp.find({ 
location: 
    { $near : 
     { 
     $geometry: { type: "Point", coordinates: [ 12.560945, 41.957482 ] }, 
     $maxDistance: max 
     } 
    } 
},function(err,data){ 
    // Mongo command to fetch all data from collection. 
     if(err) { 
      response = {"error" : true,"message" : "Error fetching data"}; 
     } else { 
      response = {"error" : false,"message" : data}; 
     } 
     res.json(response); 
    }); 
}); 

Услуга сервис прибудет и работает очень хорошо. Теперь я woutld хотел перейти к $ вблизи запроса значения maxDistance и координаты Сервисом и у меня есть попытаться таким образом только maxDistance:

router.route("/api/geo_cars/:maxDistance") 
.get(function(req,res){ 
    var max = req.params.maxDistance; 
    var response = {}; 
    mongoOOp.find({ 
location: 
    { $near : 
     { 
     $geometry: { type: "Point", coordinates: [ 12.560945, 41.957482 ] }, 
     $maxDistance: max 
     } 
    } 
},function(err,data){ 
    // Mongo command to fetch all data from collection. 
     if(err) { 
      response = {"error" : true,"message" : "Error fetching data"}; 
     } else { 
      response = {"error" : false,"message" : data}; 
     } 
     res.json(response); 
    }); 
}); 

но когда я запустить службу в почтальона ответ ошибка " Ошибка получения данных ". Любая помощь, как я могу передать это значение $ рядом с запросом по сервису в качестве параметра? Thanks

ответ

1

Экспресс обрабатывает все значения, проходящие как строки. Преобразование maxDistance в integer должно работать.

var max = parseInt(req.params.maxDistance); 
Смежные вопросы