[英]Node.js / REST: How to get _id from url
我遵循了下一個教程: http : //cwbuecheler.com/web/tutorials/2014/restful-web-app-node-express-mongodb/幾天后,我可以正常使用所有內容,但是更新用戶數據庫僅供讀者使用他們自己。
我已經編輯了翡翠模板,並為更新鏈接上的click事件添加了一些JavaScript。 我什至可以從列出的testuser中檢索userID。 用警報測試了這個,還可以。
點擊事件的JavaScript:global.js
function showUser2Edit(event){
event.preventDefault();
var userID = $(this).attr('rel');
// alert (userID);// _id from MongoDB, ok!
// jQuery AJAX call for JSON
$.getJSON( '/users/userdata/' + userID, function( data ) {
// populate edit form
alert (JSON.stringify(data));
}
}
在users.js中(服務器端node.js)
/*
* GET userData
*/
router.get('/userdata', function(req, res) {
var db = req.db;
var collection = db.get('users');
collection.find({_id: ?????? },{},function(e,docs){
res.json(docs);
});
});
我真的不知道如何解決2個問題:
Ajax調用將到達:users / userdata / _id(_id是一個長字符串,MongoDB自動將其添加為鍵)。 但是,如何將其添加到此路由器功能?
此_id必須放置在collection.find(....)的where部分中,但是如何從URL中提取呢?
在此先感謝您的幫助!
復制標記是不正確的,那是關於一個查詢參數的:?color = red,我如何訪問variabe顏色?,mines是一個REST系統,其中id是URL本身的一部分。
你需要改變
router.get('/userdata'...
至:
router.get('/userdata/:id'...
:id-它的參數。 如果在node.js中使用body-parser,請檢查req.body.params。
您更改:
$.getJSON( '/users/userdata/' + userID, function( data ) {
至:
$.getJSON( '/users/userdata/?id=' + userID, function( data ) {
並在節點中使用-req.query.id。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.