huncwot
Version:
A Programming Environment for TypeScript apps built on top of VS Code
30 lines (24 loc) • 809 B
JavaScript
// Copyright Zaiste. All rights reserved.
// Licensed under the Apache License, Version 2.0
const http = require('http');
const url = require('url');
const fs = require('fs-extra');
const path = require('path');
const server = http.createServer(async (request, response) => {
const { pathname } = url.parse(request.url);
try {
const file = path.join('public', pathname, 'index.html');
const data = await fs.readFile(file, 'utf-8');
response.setHeader('Content-Type', 'text/html');
response.end(data);
} catch (error) {
if (error.code === 'ENOENT') {
response.statusCode = 404;
response.end(`'${pathname}' not found!`);
} else {
response.statusCode = 500;
response.end(`Error for ${pathname} -> ${error.message}.`);
}
}
});
server.listen(8080);