jimmy/events (#6)
Co-authored-by: Jimmy Vargo <james@ayo.tokyo> Reviewed-on: ayo/website#6
This commit is contained in:
parent
83a0903155
commit
e3ddda951f
76 changed files with 564 additions and 1 deletions
69
server.js
69
server.js
|
|
@ -1,69 +0,0 @@
|
|||
const fs = require('fs')
|
||||
const http = require('http')
|
||||
const path = require('path')
|
||||
|
||||
const port = 8080 // Prefer port > 1024 to avoid super-user permission
|
||||
|
||||
const server = http.createServer((request, response) => {
|
||||
const mimeType = {
|
||||
'.html': 'text/html',
|
||||
'.js': 'text/javascript',
|
||||
'.gz': 'application/javascript',
|
||||
'.svg': 'image/svg+xml',
|
||||
'.css': 'text/css',
|
||||
'.json': 'application/json'
|
||||
}
|
||||
const mimeEncoding = {
|
||||
'.gz': 'gzip',
|
||||
}
|
||||
let pathname = 'public' + decodeURI(request.url)
|
||||
if(!fs.existsSync(pathname) || fs.statSync(pathname).isDirectory())
|
||||
{
|
||||
// If the file is not found, return 404
|
||||
// response.statusCode = 404
|
||||
// response.end(`File ${pathname} not found!`)
|
||||
// return
|
||||
pathname = 'public/index.html'
|
||||
}
|
||||
// If is a directory, then look for index.html
|
||||
// else if (fs.statSync(pathname).isDirectory()) {
|
||||
// pathname += 'index.html'
|
||||
// }
|
||||
|
||||
if(!fs.existsSync(pathname))
|
||||
{
|
||||
// If the file is not found, return 404
|
||||
response.statusCode = 404
|
||||
response.end(`File ${pathname} not found!`)
|
||||
return
|
||||
}
|
||||
|
||||
// Read file from file system
|
||||
fs.readFile(pathname, function(error, data){
|
||||
if(error)
|
||||
{
|
||||
response.statusCode = 500
|
||||
response.end(`Error getting the file: ${error}.`)
|
||||
}
|
||||
else
|
||||
{
|
||||
// Based on the URL path, extract the file extention. e.g. .js, .doc, ...
|
||||
const extension = path.parse(pathname).ext
|
||||
// Set Content-Type
|
||||
response.setHeader('Content-Type', mimeType[extension] || 'text/plain' )
|
||||
// If the file is found, set Content-Encoding
|
||||
if(mimeEncoding[extension])
|
||||
{
|
||||
response.setHeader('Content-Encoding', mimeEncoding[extension])
|
||||
}
|
||||
response.end(data)
|
||||
}
|
||||
})
|
||||
})
|
||||
|
||||
server.listen(port, (error) => {
|
||||
if (error) {
|
||||
return console.log(`Server cannot listen port ${port} :`, error)
|
||||
}
|
||||
console.log(`Server is listening on port ${port}`)
|
||||
})
|
||||
Loading…
Add table
Add a link
Reference in a new issue