【问题标题】:Javascript GET Request Parameters Showing up as Strings Instead of NumbersJavascript GET请求参数显示为字符串而不是数字
【发布时间】:2018-01-13 01:53:31
【问题描述】:

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

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

我正在从 Postman 发送以下获取请求:

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

我在 getObject 中使用这样的快速验证器:

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

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

【问题讨论】:

  • this 有帮助吗?
  • 试过了,不行。

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


【解决方案1】:

在 URL 中传递的所有内容,即使是查询字符串,也将在接收者端作为字符串接收。您必须明确使用:

Number(val1)

parseInt(val1)

将其转换为数字。

【讨论】:

    猜你喜欢
    • 2012-03-19
    • 1970-01-01
    • 2015-07-17
    • 2021-07-11
    • 1970-01-01
    • 2013-09-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多