Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 | 1x 1x 8x 8x 1x 1x 7x 1x 1x 6x 1x 1x 5x 4x 2x 2x 1x 2x 1x 1x 2x 1x 1x 1x 1x 1x 1x 8x 2x | import config from "./config.js"
import {
Controller
} from "./controller.js"
import {
logger
} from "./util.js"
const {
location,
pages: {
homeHTML,
controllerHTML
},
constants: {
CONTENT_TYPE
}
} = config
const controller = new Controller()
async function routes(request, response) {
const {
method,
url
} = request
if (method === 'GET' && url === '/') {
response.writeHead(302, {
'Location': location.home
})
return response.end()
}
if (method === 'GET' && url === '/home') {
const {
stream
} = await controller.getFileStream(homeHTML)
// padrão do response é text/html
// response.writeHead(200, {
// 'Content-Type': 'text/html'
// })
return stream.pipe(response)
}
if (method === 'GET' && url === '/controller') {
const {
stream
} = await controller.getFileStream(controllerHTML)
// padrão do response é text/html
// response.writeHead(200, {
// 'Content-Type': 'text/html'
// })
return stream.pipe(response)
}
//files
if (method === 'GET') {
const {
stream,
type
} = await controller.getFileStream(url)
const contentType = CONTENT_TYPE[type]
if (contentType) {
response.writeHead(200, {
'Content-Type': contentType
})
}
return stream.pipe(response)
}
response.writeHead(404)
return response.end()
}
function handleError(error, response) {
if (error.message.includes('ENOENT')) {
logger.warn(`asset not found ${error.stack}`)
response.writeHead(404)
return response.end()
}
logger.error(`caught error on API ${error.stack}`)
response.writeHead(500)
return response.end()
}
export function handler(request, response) {
return routes(request, response)
.catch(error => handleError(error, response))
} |