nigdy nie używane Frisby lub superagent, ale uważam, że istnieją dwa pytania tutaj:
1. passing an invalid JSON from client to server using POST method.
co nie jest możliwe, ponieważ zostanie ona wkrótce odrzucane po stronie klienta samego, a ty otrzyma błąd przed wysłaniem żądania POST do serwera. (Bo jak są tylko ciągi podczas pracy z http, klient sam spróbować stringify JSON, gdzie będzie on utknąć z nieprawidłową JSON)
2. pass an invalid JSON just as a string
przykład: post ciąg tak przy użyciu 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);
});
To skutecznie przekazuje nieprawidłowy JSON (w tym przypadku nazwę) do serwera jako srting. Ale będzie to wymagało przeanalizowania ciągu znaków w JSON przy użyciu JSON.parse()
, zanim będzie można z niego korzystać. I podczas próby, aby uzyskać w ten sposób:
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)
Więc cokolwiek pakiety używać do Reszta, można przekazać nieprawidłową JSON jako ciąg, ale nie używaj go.
Czy możesz podać przykłady użytych ciągów i obiektów? – Demurgos
@Demurgos Dodano przykład, dzięki. – alefteris
Jeśli potrzebujesz tego testu, musi wystąpić sytuacja, gdy spodziewasz się wystąpienia tego błędu. Czy możesz podać scenariusz wystąpienia tego błędu? – freele