Я работаю над экспресс-проектом 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 выглядит следующим образом:
Вот проблема: Я хочу получить данные, соответствующие Джон Петерсон на основе его _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 не определен
я ответил выше на ваш вопрос – HitRefresh
@ pink612 ваш код маршрут выглядит нормально, то, что делает ваш датчик схемы выглядеть? У вас есть атрибут '_id: {type: String, required: true}' в вашей схеме? –
Также есть причина, по которой вы используете имя как '_id'? Обычно я бы не рекомендовал это, так как ваш '_id' должен быть уникальным, и вы, вероятно, будете иметь дубликаты, если будете использовать первое имя. –