2015-03-19 46 views
3

的DRY的方法,我想有一個API,它可以讓一個人的嵌套屬性越來越什麼是嵌套快速路由

router.get('/person/:id', fun.. router.get('/person/:id/name, fun... router.get('/person/:id/address, fun...

全部是一個貓鼬計劃的同一個對象。查找人物對象的最佳方式是什麼?我覺得我應該使用router.use(/ person /:id)來查看這個人,並以某種方式傳遞它。

回答

4

檢查app.param(),例如:

router.param('id', function(req, res, next, id) { 
    Person.find(id, function(err, person) { 
    if (err)next(err); 
    else if (person) { 
     req.person = person; 
     next(); 
    } else { 
     next(new Error('failed to load person')); 
    } 
    }); 
}); 

router.get('/person/:id', function() { /* ... */}); 
router.get('/person/:id/name', function() { /* ... */}); 
router.get('/person/:id/address', function() { /* ... */}); 

然後你可以從req.person訪問Person對象。