簡體   English   中英

Node.js / REST:如何從URL獲取_id

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM