2016-06-06 2 views
0

Express 4에서는 모든 쿼리 문자열 매개 변수를 수신하지 않고 첫 번째 매개 변수 만 수신합니다. 컬이 의미하는 바를 알 수없는 이상한 출력을 보여줍니다. 나는 cors와 mongoose-pagination 모듈을 사용하고 있습니다.Express는 curl을 사용하여 모든 쿼리 문자열 매개 변수를 수신하지 않습니다.

여기가 어떻게됩니까?

사용 컬 : app.js에서 컬 http://localhost:3000/products?_dc=1465158748756&page=1&start=0&limit=25

: 제품 컨트롤러

//Enable CORS 
app.use(cors()); 
app.options('*', cors()); 


app.use('/', routes); 
app.use('/users', users); 
app.use('/products', products); 

:

:

/* GET products listing. */ 
router.get('/', function(req, res) { 
    var page = req.query.page ? 1 : req.query.page; 
    //var start = req.query.start; 
    var limit = req.query.limit ? 1 : req.query.limit; 
    db.product.paginate({}, { page: page, limit: limit }, function(err, p){ 
    if(err){ 
     console.log(err); 
     //Error 
     res.status = 500; 
     return res.send(new Error(err)); 
     } 
     return res.send(p); 
    }); 
}); 

req.query 단지 최초의 파라미터를 포함

req.query 
Object 
_dc: "1465158748756" 
__proto__: Object 
,

이는 컬의 출력,이 해석하는 방법을 알고하지 않습니다

[email protected]:~/node/HomeInventoryServer$ curl http://localhost:3000/products?_dc=1465158748756&page=1&start=0&limit=25 
[1] 3471 
[2] 3472 
[3] 3473 

답변

1

좋아, 단지 기록을 위해, 내가 컬은 그것을 해석으로 "따옴표 안에있는 URL을 둘 필요가 보인다 다른 방법.

curl "http://localhost:3000/products?_dc=1465158748756&page=1&start=0&limit=25" 
+1

도 확인하십시오. var page = req.query.page? 1 : req.query.page; req.query.page를 설정하더라도 페이지를 1로 설정합니다. 이렇게하는 더 좋은 방법은 다음과 같습니다. var page = req.query.page || 1 – peerbolte

+0

@Joenesy 그 조언을 주셔서 대단히 감사합니다! – Oscar

관련 문제