<snapdata remixID="13001930"><project name="Webserver Maker" app="Snap! 9.0, https://snap.berkeley.edu" version="2"><notes>See comment inside for details.&#xD;This project uses codification to allow you to simply make webservers!</notes><thumbnail>data:image/png;base64,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</thumbnail><scenes select="1"><scene name="Webserver Maker"><notes>See comment inside for details.&#xD;This project uses codification to allow you to simply make webservers!</notes><palette><category name="Project Blocks" color="0,116,143,1"/></palette><hidden> forward turn turnLeft setHeading doFaceTowards gotoXY doGotoObject doGlide changeXPosition setXPosition changeYPosition setYPosition bounceOffEdge getPosition xPosition yPosition direction doSwitchToCostume doWearNextCostume getCostumeIdx doSayFor bubble doThinkFor doThink reportGetImageAttribute reportNewCostumeStretched reportNewCostume changeEffect setEffect clearEffects getEffect changeScale setScale getScale show hide reportShown goToLayer goBack playSound doPlaySoundUntilDone doStopAllSounds doPlaySoundAtRate reportGetSoundAttribute reportNewSoundFromSamples doRest doPlayNote doSetInstrument doChangeTempo doSetTempo getTempo changeVolume setVolume getVolume changePan setPan getPan playFreq stopFreq clear down up getPenDown setColor changePenColorDimension setPenColorDimension getPenAttribute changeSize setSize doStamp floodFill write reportPenTrailsAsCostume doPasteOn doCutFrom receiveGo receiveKey receiveInteraction receiveCondition receiveMessage doBroadcast doBroadcastAndWait doWarp doWait doWaitUntil doForever doRepeat doUntil doFor doIf doIfElse reportIfElse doReport doStopThis doRun fork evaluate reportPipe doTellTo reportAskFor receiveOnClone createClone newClone removeClone doPauseAll doSwitchToScene receiveUserEdit doDefineBlock doDeleteBlock doSetBlockAttribute reportBlockAttribute reportEnvironment reportTouchingObject reportTouchingColor reportColorIsTouchingColor doAsk getLastAnswer reportMousePosition reportMouseX reportMouseY reportMouseDown reportKeyPressed reportRelationTo reportAspect doResetTimer getTimer reportDate reportAttributeOf reportGet reportObject reportURL reportAudio reportVideo doSetVideoTransparency reportGlobalFlag doSetGlobalFlag reifyScript reifyReporter reifyPredicate reportVariadicSum reportDifference reportVariadicProduct reportQuotient reportPower reportModulus reportRound reportMonadic reportRandom reportVariadicLessThan reportVariadicEquals reportVariadicGreaterThan reportVariadicAnd reportVariadicOr reportNot reportBoolean reportJoinWords reportTextSplit reportLetter reportTextAttribute reportUnicode reportUnicodeAsLetter reportIsA reportVariadicIsIdentical doSetVar doChangeVar doShowVar doHideVar doDeclareVariables doDeleteAttr reportNewList reportNumbers reportCONS reportListItem reportCDR reportListAttribute reportListIndex reportListContainsItem reportListIsEmpty reportMap reportKeep reportFindFirst reportCombine doForEach doAddToList doDeleteFromList doInsertInList doReplaceInList reportConcatenatedLists reportReshape reportCrossproduct reportJSFunction reportAtan2 reportVariadicMin reportVariadicMax</hidden><headers></headers><code><tempvars_delim>, </tempvars_delim><delim>, </delim></code><blocks><block-definition s="%&apos;type&apos; %&apos;name&apos; = %&apos;thing&apos; ;" type="command" category="Project Blocks"><comment x="0" y="0" w="90" collapsed="false">set a variable to a given value.</comment><header></header><code>&lt;#1&gt; &lt;#2&gt; = &lt;#3&gt;;</code><translations></translations><inputs><input type="%s" readonly="true">var<options>const&#xD;let&#xD;var</options></input><input type="%s">foo</input><input type="%s">bar</input></inputs></block-definition><block-definition s="handle request %&apos;type&apos; @ path %&apos;path&apos; with %&apos;code&apos; ;" type="command" category="Project Blocks"><comment x="0" y="0" w="90" collapsed="false">respond to a request at a given path with given code.</comment><header></header><code>app.&lt;#1&gt;(&apos;&lt;#2&gt;&apos;, function (req, res) {&#xD;  &lt;#3&gt;&#xD;});</code><translations></translations><inputs><input type="%s" readonly="true">get<options>get&#xD;post&#xD;put</options></input><input type="%s">/</input><input type="%cs"></input></inputs></block-definition><block-definition s="respond with status %&apos;status&apos; and %&apos;deets&apos; ;" type="command" category="Project Blocks"><comment x="0" y="0" w="90" collapsed="false">set the response status for a response and respond in a given way.</comment><header></header><code>res.status(&lt;#1&gt;).send(&lt;#2&gt;);</code><translations></translations><inputs><input type="%n">200</input><input type="%s">Webserver is running!</input></inputs></block-definition><block-definition s="listen on port %&apos;n&apos; ;" type="command" category="Project Blocks"><comment x="0" y="0" w="90" collapsed="false">makes the webserver start on a given port.</comment><header></header><code>app.listen(&lt;#1&gt;, function () {&#xD;  console.log(&apos;Webserver listening on port &lt;#1&gt;.&apos;);&#xD;});</code><translations></translations><inputs><input type="%n">3000</input></inputs></block-definition><block-definition s="respond with file %&apos;file&apos; ;" type="command" category="Project Blocks"><comment x="0" y="0" w="90" collapsed="false">sends a file in a form of a response.</comment><header></header><code>res.sendFile(__dirname + &apos;&lt;#1&gt;&apos;);</code><translations></translations><inputs><input type="%s">/path-to-file.txt</input></inputs></block-definition><block-definition s="set 404 message to %&apos;text&apos; ;" type="command" category="Project Blocks"><comment x="0" y="0" w="90" collapsed="false">when a page can&apos;t be found, respond in a given way.</comment><header></header><code>app.use(function(req, res, next) {&#xD;  res.status(404).send(&lt;#1&gt;);&#xD;});</code><translations></translations><inputs><input type="%s">"Whoops! We couldn&apos;t find that."</input></inputs></block-definition><block-definition s="set response header %&apos;n&apos; to %&apos;x&apos; ;" type="command" category="Project Blocks"><comment x="0" y="0" w="90" collapsed="false">set a header in a response to a given value.</comment><header></header><code>res.header(&apos;&lt;#1&gt;&apos;, &apos;&lt;#2&gt;&apos;);</code><translations></translations><inputs><input type="%s">Content-type</input><input type="%s">text/html</input></inputs></block-definition><block-definition s="// %&apos;comment&apos;" type="command" category="Project Blocks"><header></header><code>// &lt;#1&gt;</code><translations></translations><inputs><input type="%s">Single-line comment...</input></inputs></block-definition><block-definition s="/* %&apos;ml&apos; */" type="command" category="Project Blocks"><header></header><code></code><translations></translations><inputs><input type="%mlt">Multi-line comment...</input></inputs></block-definition><block-definition s="import webserver modules;" type="command" category="Project Blocks"><comment x="0" y="0" w="90" collapsed="false">import and initialize express.</comment><header></header><code>var express = require(&quot;express&quot;);&#xD;var app = express();</code><translations></translations><inputs></inputs></block-definition><block-definition s="%&apos;code&apos;" type="command" category="Project Blocks"><comment x="0" y="0" w="90" collapsed="false">run custom javascript code.</comment><header></header><code>&lt;#1&gt;</code><translations></translations><inputs><input type="%mlt">console.log("Hello!");</input></inputs></block-definition><block-definition s="map blocks -&gt; code" type="command" category="other"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doMapCodeOrHeader"><block s="reifyScript"><script><custom-block s="// %s"><l></l></custom-block></script><list></list></block><l><option>code</option></l><l>// &lt;#1&gt;</l></block><block s="doMapCodeOrHeader"><block s="reifyScript"><script><custom-block s="import webserver modules;"></custom-block></script><list></list></block><l><option>code</option></l><l>var express = require("express");&#xD;var app = express();</l></block><block s="doMapCodeOrHeader"><block s="reifyScript"><script><custom-block s="%s %s = %s ;"><l></l><l></l><l></l></custom-block></script><list></list></block><l><option>code</option></l><l>&lt;#1&gt; &lt;#2&gt; = &lt;#3&gt;;</l></block><block s="doMapCodeOrHeader"><block s="reifyScript"><script><custom-block s="handle request %s @ path %s with %cs ;"><l></l><l></l><script></script></custom-block></script><list></list></block><l><option>code</option></l><l>app.&lt;#1&gt;(&apos;&lt;#2&gt;&apos;, function (req, res) {&#xD;  &lt;#3&gt;&#xD;});</l></block><block s="doMapCodeOrHeader"><block s="reifyScript"><script><custom-block s="set response header %s to %s ;"><l></l><l></l></custom-block></script><list></list></block><l><option>code</option></l><l>res.header(&apos;&lt;#1&gt;&apos;, &apos;&lt;#2&gt;&apos;);</l></block><block s="doMapCodeOrHeader"><block s="reifyScript"><script><custom-block s="respond with status %n and %s ;"><l></l><l></l></custom-block></script><list></list></block><l><option>code</option></l><l>res.status(&lt;#1&gt;).send(&lt;#2&gt;);</l></block><block s="doMapCodeOrHeader"><block s="reifyScript"><script><custom-block s="respond with file %s ;"><l></l></custom-block></script><list></list></block><l><option>code</option></l><l>res.sendFile(__dirname + &apos;&lt;#1&gt;&apos;);</l></block><block s="doMapCodeOrHeader"><block s="reifyScript"><script><custom-block s="set 404 message to %s ;"><l></l></custom-block></script><list></list></block><l><option>code</option></l><l>app.use(function(req, res, next) {&#xD;  res.status(404).send(&lt;#1&gt;);&#xD;});</l></block><block s="doMapCodeOrHeader"><block s="reifyScript"><script><custom-block s="listen on port %n ;"><l></l></custom-block></script><list></list></block><l><option>code</option></l><l>app.listen(&lt;#1&gt;, function () {&#xD;  console.log(&apos;Webserver listening on port &lt;#1&gt;.&apos;);&#xD;});</l></block><block s="doMapCodeOrHeader"><block s="reifyScript"><script><custom-block s="%mlt"><l></l></custom-block></script><list></list></block><l><option>code</option></l><l>&lt;#1&gt;</l></block><block s="doMapCodeOrHeader"><block s="reifyScript"><script><custom-block s="import module %s ;"><l></l></custom-block></script><list></list></block><l><option>code</option></l><l>var &lt;#1&gt; = require(&apos;&lt;#1&gt;&apos;);</l></block><block s="doMapCodeOrHeader"><block s="reifyScript"><script><custom-block s="%br"></custom-block></script><list></list></block><l><option>code</option></l><block s="reportUnicodeAsLetter"><l>10</l></block></block><block s="doMapCodeOrHeader"><block s="reifyReporter"><autolambda><custom-block s="request parameter %s"><l></l></custom-block></autolambda><list></list></block><l><option>code</option></l><l>req.params.&lt;#1&gt;</l></block><block s="doMapCodeOrHeader"><block s="reifyReporter"><autolambda><custom-block s="environment variable %s"><l></l></custom-block></autolambda><list></list></block><l><option>code</option></l><l>process.env[&apos;&lt;#1&gt;&apos;]</l></block></script></block-definition><block-definition s="code from %&apos;blocks&apos;" type="reporter" category="other"><header></header><code></code><translations></translations><inputs><input type="%cmdRing"></input></inputs><script><block s="doReport"><block s="reportMappedCode"><block var="blocks"/></block></block></script></block-definition><block-definition s="import module %&apos;modulename&apos; ;" type="command" category="Project Blocks"><comment x="0" y="0" w="90" collapsed="false">import a given module.</comment><header></header><code>var &lt;#1&gt; = require(&apos;&lt;#1&gt;&apos;);</code><translations></translations><inputs><input type="%s">express</input></inputs></block-definition><block-definition s="$nl" type="command" category="Project Blocks"><header></header><code>&#xD;</code><translations></translations><inputs></inputs></block-definition><block-definition s="request parameter %&apos;id&apos;" type="reporter" category="Project Blocks"><comment x="0" y="0" w="90" collapsed="false">get a parameter from the request.</comment><header></header><code>req.params.&lt;#1&gt;</code><translations></translations><inputs><input type="%s">foo</input></inputs></block-definition><block-definition s="environment variable %&apos;name&apos;" type="reporter" category="Project Blocks"><comment x="0" y="0" w="90" collapsed="false">get the value of a given environment variable.</comment><header></header><code>process.env[&apos;&lt;#1&gt;&apos;]</code><translations></translations><inputs><input type="%s">API_KEY</input></inputs></block-definition><block-definition s="%&apos;method&apos; url %&apos;url&apos; body %&apos;body&apos; headers %&apos;headers&apos;" type="command" category="Project Blocks"><header></header><code>axios.&lt;#1&gt;(&lt;#2&gt;, {&lt;#3&gt;}, {headers: &lt;#4&gt;})</code><translations></translations><inputs><input type="%s" readonly="true">get<options>get&#xD;post&#xD;put&#xD;delete</options></input><input type="%s">"https://example.com"</input><input type="%mult%s"></input><input type="%mult%s"></input></inputs></block-definition><block-definition s="{ %&apos;key&apos; : %&apos;value&apos; }" type="reporter" category="Project Blocks"><header></header><code></code><translations></translations><inputs><input type="%s">key</input><input type="%s">value</input></inputs><script><block s="doReport"><l></l></block></script></block-definition></blocks><stage name="Stage" width="480" height="360" costume="0" color="255,255,255,1" tempo="60" threadsafe="false" penlog="false" volume="100" pan="0" lines="round" ternary="true" hyperops="true" codify="false" inheritance="true" sublistIDs="false" id="193"><pentrails>data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAeAAAAFoCAYAAACPNyggAAAAAXNSR0IArs4c6QAADoVJREFUeF7t1cEJAAAIxDDdf2m3sJ+4wEEQuuMIECBAgACBd4F9XzRIgAABAgQIjAB7AgIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECByxcQFpoRMBzwAAAABJRU5ErkJggg==</pentrails><costumes><list struct="atomic" id="194"></list></costumes><sounds><list struct="atomic" id="195"></list></sounds><variables></variables><blocks></blocks><scripts></scripts><sprites select="1"><sprite name="How-To" idx="1" x="0" y="0" heading="90" scale="1" volume="100" pan="0" rotation="1" draggable="false" costume="1" color="80,80,80,1" pen="tip" id="200"><costumes><list id="201"><item><ref mediaID="How-To_cst_Untitled"></ref></item></list></costumes><sounds><list struct="atomic" id="202"></list></sounds><blocks></blocks><variables></variables><scripts><script x="10" y="10"><custom-block s="/* %mlt */"><l>Steps for use:&#xD;Step 1 -- Code your webserver using the "Project Blocks" category.&#xD;Step 2 -- Run the "map blocks -&gt; code" block.&#xD;Step 3 -- Drag your webserver code into the "code from ()" reporter. Export your code.&#xD;Step 4 -- Host it in whatever way you want! If you&apos;re using Render, you should set your &#xD;build command to "npm install" and your start command to "node index.js".&#xD;&#xD;Beneath this comment is the example code.</l></custom-block></script><script x="11" y="139"><custom-block s="// %s"><l>Import necessary modules.</l></custom-block><custom-block s="import webserver modules;"></custom-block><custom-block s="%br"></custom-block><custom-block s="handle request %s @ path %s with %cs ;"><l>get</l><l>/</l><script><custom-block s="// %s"><l>If you go to /, see "Webserver is running!"</l></custom-block><custom-block s="set response header %s to %s ;"><l>Content-type</l><l>text/html</l></custom-block><custom-block s="respond with status %n and %s ;"><l>200</l><l>"Webserver is running!"</l></custom-block></script></custom-block><custom-block s="%br"></custom-block><custom-block s="handle request %s @ path %s with %cs ;"><l>get</l><l>/foo</l><script><custom-block s="// %s"><l>Send an imaginary file if you go to /foo.</l></custom-block><custom-block s="respond with file %s ;"><l>/foo.txt</l></custom-block></script></custom-block><custom-block s="%br"></custom-block><custom-block s="handle request %s @ path %s with %cs ;"><l>get</l><l>/repeat/:word</l><script><custom-block s="// %s"><l>Repeat the URL parameter to the user if they go to path /repeat.</l></custom-block><custom-block s="respond with status %n and %s ;"><l>200</l><custom-block s="request parameter %s"><l>word</l></custom-block></custom-block></script></custom-block><custom-block s="%br"></custom-block><custom-block s="set 404 message to %s ;"><l>"Whoops! We couldn&apos;t find that."</l></custom-block><custom-block s="%br"></custom-block><custom-block s="// %s"><l>Start the webserver.</l></custom-block><custom-block s="listen on port %n ;"><l>3000</l></custom-block></script><script x="372.5" y="312.79999999999995"><custom-block s="map blocks -&gt; code"></custom-block></script><script x="195" y="535.8"><custom-block s="code from %cmdRing"><block s="reifyScript"><script><custom-block s="%s url %s body %mult%s headers %mult%s"><l>get</l><l>"https://example.com"</l><list><l>1</l><l>2</l></list><list><l></l></list></custom-block></script><list></list></block></custom-block></script><script x="396" y="204"><block s="doMapListCode"><l><option>delimiter</option></l><l><option>variables</option></l><l>, </l></block><block s="doMapListCode"><l><option>delimiter</option></l><l><option>collection</option></l><l>, </l></block></script><script x="363.48828125" y="360"><block s="doMapCodeOrHeader"><block s="reifyReporter"><script><custom-block s="%s url %s body %mult%s headers %mult%s"><l></l><l></l><list><l></l></list><list><l></l></list></custom-block></script><list></list></block><l><option>code</option></l><l>axios.&lt;#1&gt;(&lt;#2&gt;, {&lt;#3&gt;}, {headers: &lt;#4&gt;})</l></block></script></scripts></sprite></sprites></stage><variables></variables></scene></scenes></project><media name="Webserver Maker" app="Snap! 9.0, https://snap.berkeley.edu" version="2"><costume name="Untitled" center-x="95" center-y="52" image="data:image/png;base64,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" mediaID="How-To_cst_Untitled"/></media></snapdata>