1 let querystring = require('querystring')
2 let stream_buffers = require('stream-buffers')
10 <link rel="stylesheet" type="text/css" href="olly.css">
11 <title>Calculation</title>
16 if (env.request.method == 'POST') {
17 let write_stream = new stream_buffers.WritableStreamBuffer()
18 let data = new Promise(
19 (resolve, reject) => {
21 on('finish', () => {resolve(write_stream.getContents())}).
22 on('error', () => {reject()})
25 env.request.pipe(write_stream)
26 let query = querystring.parse((await data).toString())
28 let radius_and_units = query.radius.split(' ')
29 let radius = parseFloat(radius_and_units[0])
30 let units = radius_and_units[1] || 'units'
31 let area = Math.PI * radius * radius
32 let circumference = Math.PI * radius * 2
33 let diameter = radius * 2
35 if (isNaN(radius) || radius < 0) {
37 `<h1>Error - Unable to Calculate Missing or Negative Radius</h1>
43 `<h1>The radius is: ${radius} ${units}</h1>
44 <h1>The area is: ${area} ${units}²</h1>
45 <h1>The circumference is: ${circumference} ${units}</h1>
46 <h1>The diameter is: ${diameter} ${units}</h1>
58 `<h1>Please go <a href="/circle.html">here</a>.</h1>
70 Buffer.from(_out.join('')),
71 'calculatebutton.html.jst'