sjs_json-test-server.sjs (1320B)
1 /* Any copyright is dedicated to the Public Domain. 2 http://creativecommons.org/publicdomain/zero/1.0/ */ 3 "use strict"; 4 5 function handleRequest(request, response) { 6 response.setStatusLine(request.httpVersion, 200, "OK"); 7 response.setHeader("Cache-Control", "no-cache, no-store, must-revalidate"); 8 response.setHeader("Pragma", "no-cache"); 9 response.setHeader("Expires", "0"); 10 11 response.setHeader("Content-Type", "application/json; charset=utf-8", false); 12 13 // This server checks the name parameter from the request to decide which JSON object to 14 // return. 15 const params = request.queryString.split("&"); 16 const name = (params.filter(s => s.includes("name="))[0] || "").split("=")[1]; 17 switch (name) { 18 case "null": 19 response.write('{ "greeting": null }'); 20 break; 21 case "root-null": 22 response.write(`null`); 23 break; 24 case "nogrip": 25 response.write('{"obj": {"type": "string" }}'); 26 break; 27 case "empty": 28 response.write("{}"); 29 break; 30 case "numbers": 31 response.write(`{ 32 "small": 12, 33 "negzero": -0, 34 "big": 1516340399466235648, 35 "precise": 3.141592653589793238462643383279, 36 "exp": 1e2 37 }`); 38 break; 39 case "large-root-integer": 40 response.write(`1516340399466235648`); 41 break; 42 } 43 }