2017-08-05 49 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) 

将其转换为数字。

相关问题