2017-01-07 4 views
0

Je veux obtenir des données d'ID de propriétaire qui se trouve entre deux dates en utilisant datePicker.Comment écrire une requête Mongo pour trouver des données entre les dates

HTML

<form method="post"> 
       <div class="col-lg-5 col-md-5"> 
        <label>From</label> 
        <input type="date" class="form-control" ng-model="date.from" name="datefrom" /> 
       </div> 
       <div class="col-lg-5 col-md-5"> 
        <label>To</label> 
        <input type="date" class="form-control" ng-model="date.to" name="dateto" /> </div> 
       <div class="col-lg-2 col-md-2"> 
        <button class="btn btn-primary " ng-click="getleaddate()">Go</button> 
       </div> 

      </form> 

API Node

apiRoutes.post('/getleaddate', function(req, res){ 
    var token=getToken(req.headers); 
    var owner=jwt.decode(token, config.secret); 
    Lead.find({ownerId:owner._id},date:{$gte :new Date(req.body.datefrom), $lte:new Date(req.body.dateto)},function(err, data){ 
    if(err){res.json(err)} 
     else{ 
     res.json(data); 
     console.log(data) 
     } 

    }); 
}); 

Au-dessus de l'API ne fonctionne pas parce req.body.datefrom et req.body.dateto est undefined Je ne sais pas comment le résoudre.

S'il vous plaît donnez-moi une solution.

Merci

Répondre

1

s'il vous plaît vérifier la fonction de ng-click = "getleaddate()"

Vérifiez l'onglet réseau sur le corps de la requête et demande envoyée.

il fonctionne bien pour moi:

FormData: 

datefrom:2017-01-11 
dateto:2017-01-04 

router.post('/test', function(req, res) { 

    console.log(req.body); 
    console.log(req.body.datefrom); 
}); 

Sortie de la console:

{ datefrom: '2017-01-11', dateto: '2017-01-04' } 
+0

Je vérifie l'onglet Réseau suivant est en ce genre : ' "date" un message : « Cast à ce jour a échoué pour la valeur "Date non valide" au chemin "date" " nom : " CastError " chemin : "date" valeur : null' –

+0

et ma fonction angulaire est fonction '$ scope.getleaddate =() {$ http.post ('/ api/getleaddate', scope.date de $). success (function (res) { $ scope.res = res; }) } ' –

+0

Oui ... maintenant la console affiche une valeur .... Avant cela, je vérifiais' console.log (req.body.datefrom) 'mais son' undefined'. Mais à la place j'ai écrit ceci 'console.log (req.body.from)'. C'est pourquoi maintenant la console imprime la valeur ... Mais la requête ne fonctionne pas .... pour la requête je dois faire ceci: date: {$ gte: new Date ("2017-01-01"), $ lte: new Date ("2017-01-05") '. Pour ce faire, je fais comme 'var from = req.body.from' et' var to = req.body.to' et la requête sera 'date: {$ gte: new Date (" from "), $ lte: new Date ("to") '... Mais ça ne marche pas ... une solution pour ça ??? plz –