2016-07-20 2 views
0

Я работаю над экспресс-проектом js. У меня есть вся моя базовая маршрутизация, работающая отлично. Обычно, когда я хочу, чтобы искать записи на основе идентификатора я это сделать:Экспресс-маршрутизация JS на основе имен пользователей

router.route('/sensors_home/:sensor_id') 
.get(function (req, res) { 
     Sensor.findById(req.params.sensor_id,function(err, sensorInfo) { 
      if (err) 
       res.send(err); 
      res.send(sensorInfo); 
     }); 
    }); 

Это позволяет мне получить данные, когда я http://localhost:4000/sesnors_home/45000cbsfdhjbnabfbajhdb

(45000cbsfdhjbnabfbajhdb = идентификатор объекта из MongoDB)

Теперь моя цель - привлечь нескольких пользователей к моему приложению. Я мой мангуст схема создана и MongoDB выглядит следующим образом:

data

Вот проблема: Я хочу получить данные, соответствующие Джон Петерсон на основе его _id что «Джон» .Instead делать это http://localhost:4000/sesnors_home/45000cbsfdhjbnabfbajhdb Я хочу сделать что-то вроде этого http://localhost:4000/sesnors_home/John и получить все данные, специфичные для Джона. Я пробовал различные методы, но все еще придерживался этой проблемы. Я попытался использовать req.params._id, а также некоторые запросы Mongodb в пользовательской коллекции, но все равно не повезло. Пожалуйста, предложите несколько идей.

Спасибо!

UPDATE:

Я попытался, используя следующий код:

router.route('/sensors_home/:id') 
.get(function (req, res) { 
res.send(_id.toString()); 
    User.findOne({_id: req.params._id} ,function(err, sensorInfo) { 
     if (err) 
      res.send(err); 
     res.send(sensorInfo); 
    }); 
}); 

Это дает мне следующее сообщение об ошибке: ReferenceError: _id не определен

ответ

0

Вы пробовали следующее?

router.route('/sensors_home/:_id') 
.get(function (req, res) { 
     Sensor.findOne({_id: req.params._id},function(err, sensorInfo) { 
      if (err) 
       res.send(err); 
      res.send(sensorInfo); 
     }); 
    }); 
+0

я ответил выше на ваш вопрос – HitRefresh

+0

@ pink612 ваш код маршрут выглядит нормально, то, что делает ваш датчик схемы выглядеть? У вас есть атрибут '_id: {type: String, required: true}' в вашей схеме? –

+0

Также есть причина, по которой вы используете имя как '_id'? Обычно я бы не рекомендовал это, так как ваш '_id' должен быть уникальным, и вы, вероятно, будете иметь дубликаты, если будете использовать первое имя. –

Смежные вопросы