我正在编写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)打印到控制台时,它们也显示为字符串而不是数字。我该如何解决这个问题?我是否必须将参数转换为数字?如果我这样做,表达验证器将不会有用,因为它只能检查参数是否被传入。
答案 0 :(得分:0)
即使查询字符串将在接收方端以字符串形式接收,但所有内容都在URL中传递。您必须明确使用:
Number(val1)
或
parseInt(val1)
将其转换为数字。