monhu-http
Version:
MonHu作成の、超簡単HTTPサーバー
66 lines (59 loc) • 1.64 kB
JavaScript
/* MonHu HTTP
MonHu作成の、超簡単HTTPサーバー
create by monhu */
var http = require("http");
var fs = require('fs');
function getType(_url) {
var types = {
".html": "text/html",
".css": "text/css",
".js": "text/javascript",
".png": "image/png",
".gif": "image/gif",
".svg": "svg+xml"
}
for (var key in types) {
if (_url.endsWith(key)) {
return types[key];
}
}
return "text/plain";
}
var d = "views"
var e404
var e500
var e403
var server = http.createServer(function (req, res) {
if (req.url == "/.env") {
res.statusCode = 403;
res.end(e403);
return;
}
console.log(`Web: ${req.url}`)
var url = d + (req.url.endsWith("/") ? req.url + "index.html" : req.url);
if (fs.existsSync(url)) {
fs.readFile(url, (err, data) => {
if (!err) {
res.writeHead(200, { "Content-Type": getType(url) });
res.end(data);
} else {
res.statusCode = 500;
res.end(e500);
}
});
} else {
res.statusCode = 404;
res.end(e404);
}
});
var port = 3000;
server.listen(port, function () {
console.log("あなたのサイトが開きました!\nhttp://localhost:" + port);
});
exports.config = function (po, de, err8, err7, err5) {
d = de == null ? "views" : de
port = po == null ? 3000 : po
e403 = err7 == null ? "" : err7
e404 = err8 == null ? "" : err8
e500 = err5 == null ? "" : err5
}