Я никогда не использовал Фрисби или SuperAgent, но я считаю, есть два вопроса:
1. passing an invalid JSON from client to server using POST method.
Что не представляется возможным, потому что она в скором времени будет отклонена на самой стороне клиента, и вы получит сообщение об ошибке перед отправкой запроса POST на сервер. (Потому как есть только строки при работе с HTTP, клиент сам будет пытаться stringify в JSON, где он будет застревать с недопустимой JSON)
2. pass an invalid JSON just as a string
пример: POST строку, как это с помощью JQuery
$.post("demo_test_post.asp",
{
name: 'pqr:{"abc":"abc",}' // see there is a comma at the end making JSON invalid
},
function(data, status){
alert("Data: " + data + "\nStatus: " + status);
});
Это эффективно передаст недействительный JSON (имя в этом случае) на сервер в виде srting. Но это потребует от вас разобрать строку в JSON, используя JSON.parse()
, прежде чем вы сможете ее использовать. И когда вы пытаетесь что вы получите это:
SyntaxError: Unexpected token p at Object.parse (native) at Object.app.get.res.send.data [as handle] (/home/ubuntu/workspace/TapToBook.js:35:19) at next_layer (/home/ubuntu/workspace/node_modules/express/lib/router/route.js:103:13) at Route.dispatch (/home/ubuntu/workspace/node_modules/express/lib/router/route.js:107:5) at proto.handle.c (/home/ubuntu/workspace/node_modules/express/lib/router/index.js:195:24) at Function.proto.process_params (/home/ubuntu/workspace/node_modules/express/lib/router/index.js:251:12) at next (/home/ubuntu/workspace/node_modules/express/lib/router/index.js:189:19) at Layer.staticMiddleware [as handle] (/home/ubuntu/workspace/node_modules/express/node_modules/serve-static/index.js:55:61) at trim_prefix (/home/ubuntu/workspace/node_modules/express/lib/router/index.js:226:17) at proto.handle.c (/home/ubuntu/workspace/node_modules/express/lib/router/index.js:198:9)
Так какие пакеты, которые вы используете для Rest, вы можете передать недопустимый JSON в виде строки, но не использовать его.
Не могли бы вы привести примеры строки и объектов, которые вы использовали? – Demurgos
@Demurgos Добавлен пример, спасибо. – alefteris
Если вам нужен этот тест, должна быть ситуация, когда вы ожидаете, что эта ошибка может возникнуть. Можете ли вы предоставить сценарий при возникновении этой ошибки? – freele