2017-08-05 400 views
0

我正在寫一個REST API的,我有一個路線定義如下:的Javascript GET請求參數顯示爲字符串,而不是數字

router.get("/objects/:id?/:val1?/:val2?", getObject);

我從郵遞員發送以下GET請求:

http://localhost:8000/objects?val1=5&val2=6 

我用快遞驗證像這樣的getObject:

req.check("val1", "Invalid param: val1").notEmpty().isInt(); 

即使我傳遞數字,當我只是把它們作爲字符串來拾取它們。當我使用JSON.stringify(req.query)打印到控制檯時,它們也顯示爲字符串而不是數字。我將如何去解決這個問題?我需要將參數作爲數字嗎?如果我這樣做,表示驗證程序將不會很有用,因爲它只能檢查參數是否被傳入。

+0

請問[this](https://stackoverflow.com/a/11260389/8225099)有幫助嗎? – Wartoshika

+0

試過了,不起作用。 – abcd123

回答

0

即使在接收方結束時將以字符串形式接收查詢字符串,也會在URL中傳遞所有內容。你必須明確地使用:

Number(val1) 

parseInt(val1) 

將其轉換爲數字。

相關問題