我正在開發一個快速js項目。我已經完成了所有基本路由的設置工作。通常,當我想根據ID檢索記錄我這樣做:基於用戶名快速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 =對象ID從MongoDB的)
現在我的目標是讓我的應用程序擁有多個用戶。我有我的貓鼬的架構設置和MongoDB的是這樣的:
這裏的問題:我想檢索與約翰彼得森數據基於他的_id是這樣做的「約翰」。相反http://localhost:4000/sesnors_home/45000cbsfdhjbnabfbajhdb我想要做這樣的事情http://localhost:4000/sesnors_home/John並檢索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您的路線代碼看起來不錯,您的傳感器模式是什麼樣的?你的schema中有'_id:{type:String,required:true}'屬性嗎? –
另外,是否有一個原因,你正在使用的名字作爲_id'?我通常不建議這樣做,因爲你的'_id'是唯一的,如果你使用第一個名字的話你可能會有重複。 –