2016-08-03 26 views
0

在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" 
     ] 
    } 
] 

...請求超時。它只是停下來。沒有錯誤拋出,它只是不起作用。爲什麼?

+0

你用什麼來解析請求體? – robertklep

+0

解析req.body我使用bodyParser。 – Jacob

+0

如果我將無效的JSON上傳到'body-parser',它會引發錯誤。你能告訴你如何使用它? – robertklep

回答

0

原來,你不應該在body-parser中使用無效的JSON(參見this answer),至少不要使用默認設置。 body-parser使用connect來解析JSON。默認情況下,連接在strict mode中運行,只允許解析正確格式的JSON。