Express - 为什么我的数组有一个尾随逗号超时?

时间:2016-08-03 17:35:12

标签: node.js express

在Express中,我有一个router.post端点,它应该接受具有特定结构的对象。它接受的对象如下所示:

[
    {
        "tableName": "patients",
        "tableColumns": [
            "id",
            "fName",
            "lName",
            "email"
        ]
    },
    {
        "tableName": "providers",
        "tableColumns": [
            "id",
            "fName",
            "lName"
        ]
    }
]

我不打算向它提供与此不同的任何数据结构,但我可能从我无法控制的来源接收数据。解析此对象时没有任何错误,但是当我在其中一个数组的末尾添加逗号时......

[
    {
        "tableName": "patients",
        "tableColumns": [
            "id",
            "fName",
            "lName",
            "email", //<<<<<<<<<
        ]
    },
    {
        "tableName": "providers",
        "tableColumns": [
            "id",
            "fName",
            "lName"
        ]
    }
]

...请求超时。它只是停止了。没有错误被抛出,它只是不起作用。为什么呢?

1 个答案:

答案 0 :(得分:0)

事实证明,您不应该在正文解析器中使用无效的JSON(请参阅this answer),至少不能使用默认设置。 body-parser使用connect来解析JSON。默认情况下,connect在strict mode中运行,只允许解析格式正确的JSON。