Node创建静态服务器
预备工作
在项目中新建static文件夹,新建404.html、index.html、css文件夹(css测试文件)、image文件夹(image测试文件)、js文件夹(js测试文件)、json文件夹(json测试文件)等静态文件。
响应式请求头
exports.getType = function (extname) {
switch (extname) {
case '.html':
return 'text/html';
case '.css':
return 'text/css';
case '.js':
return 'text/javascript';
case '.jpeg':
return 'img';
default:
return 'text/html';
}
};
处理类似/index.html?43894349493
pathName = url.parse(req.url).pathname;
完整代码
const getType = require('./getType').getType;
const http = require('http');
const fs = require('fs');
const path = require('path');
const url = require('url');
http.createServer(function (req, res) {
let pathName = req.url;
// console.log(pathName);
// console.log(url.parse(req.url).pathname);
pathName = url.parse(req.url).pathname;
pathName === '/' ? pathName = '/index.html' : "";
// console.log(pathName);
fs.readFile('./static' + pathName, function (err, data) {
// console.log('./static' + pathName);
if (err) {
console.log('404');
fs.readFile('./static/404.html', function (error, data) {
res.writeHead(404, {"Content-Type":"text/html;charset='uft-8'"});
res.write(data);
res.end();
});
return;
}
// console.log(pathName);
let type = getType(path.extname(pathName));
res.writeHead(200, {"Content-Type":type + ";charset='uft-8'"});
res.write(data);
res.end();
})
}).listen(8080);