Javascript获取请求参数显示为字符串而不是数字

时间:2017-08-05 05:05:08

标签: javascript node.js restful-url get-request

我正在编写REST API,我的路由定义如下:

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

我发送了Postman的以下get请求:

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

我在getObject:

中使用了类似的快速验证器
req.check("val1", "Invalid param: val1").notEmpty().isInt();

即使我传递了数字,当我只是将它们作为字符串接收时。当我使用JSON.stringify(req.query)打印到控制台时,它们也显示为字符串而不是数字。我该如何解决这个问题?我是否必须将参数转换为数字?如果我这样做,表达验证器将不会有用,因为它只能检查参数是否被传入。

1 个答案:

答案 0 :(得分:0)

即使查询字符串将在接收方端以字符串形式接收,但所有内容都在URL中传递。您必须明确使用:

Number(val1)

parseInt(val1)

将其转换为数字。