2016-10-15 11 views
0

私は今、ノードjsを学校で学んでいますが、私は1つのルートをブロックする必要があります。ノードjsはルート/ユーザーを表していますか?limit = 20&offset = 0

私はいくつかのユーザーとデータベースを持っていますが、localhost /ユーザーはすべてのユーザーを取得してページに印刷できます。

しかし、localhost/users?limit = 20 &オフセット= 0、このルートは前のようですが、制限はページの20人ですが、私のナビゲータにこのURLを書くと、私のparams(limitとoffset)を考慮せずに/ usersルートに留まるだけです:/。ここで

私のコードです:

app.get('/users', (req, res, next) => { 

console.log('/users') 
    db.all('SELECT * FROM users').then((users) => { 
     res.send(users) 
     next() 
    }) 
}) 


app.get('/users/:userId', (req, res, next) => { 
    console.log('aleluya') 
    console.log('-> GET /users/:userId (userId : ' + req.params.userId +')') 
    var id = req.params.userId; 
    db.all('SELECT * from users WHERE rowid = '+ id +'').then((users) => { 


    res.send(users) 
    next() 
}) 
}) 



app.get('/users?limit=20&offset=0', (req, res, next) => { // prendre l'url 
    console.log('/users?limit=20&offset=0') // afficher dans la console 
    limit = req.params.limit 
    offset = req.params.offset // mettre 0 dans offset 
    console.log(limit, offset) 
    db.all('SELECT * FROM users LIMIT '+ limit +' OFFSET '+ offset +'').then((users) => { 
     res.send(users) 
     next() 
    }) 
    }) 

答えて

1

あなたのパスは、あなたが使用する必要がクエリパラメータにアクセスするには、まだ/ユーザー

あるのでされている:

// console.log(req.query['key']) 
// 
//  req.query.limit 
//  req.query.offset 

だから、あなたが変更することができますあなたのコードは次のようになります:

app.get('/users', (req, res, next) => { 
console.log('/users') 
if(req.query.limit){ 
    return doQueryUsers(req, res, next); 
} 
    db.all('SELECT * FROM users').then((users) => { 
     res.send(users) 
     next() 
    }) 
}) 


app.get('/users/:userId', (req, res, next) => { 
    console.log('aleluya') 
    console.log('-> GET /users/:userId (userId : ' + req.params.userId +')') 
    var id = req.params.userId; 
    db.all('SELECT * from users WHERE rowid = '+ id +'').then((users) => { 


    res.send(users) 
    next() 
}) 
}) 



var doQueryUsers = function(req, res, next) { // prendre l'url 
    console.log('/users?limit=20&offset=0') // afficher dans la console 
    limit = req.query.limit 
    offset = req.query.offset // mettre 0 dans offset 
    console.log(limit, offset) 
    db.all('SELECT * FROM users LIMIT '+ limit +' OFFSET '+ offset +'').then((users) => { 
     res.send(users) 
     next() 
    }) 
    } 
関連する問題