使用http模块创建简易路由服务器:
const http = require("http");
const url = require('url');
const fs = require('fs');
let server = http.createServer((req, res) => {
console.log('收到client请求');
//获取请求路径
let l = url.parse(req.url);
console.log(`请求路径`+__dirname+l.path);
//过滤favicon.ico文件
if(l.path === '/favicon.ico') return ;
//获取状态,判断是文件夹or文件
fs.stat(__dirname+l.path, (err, stats) => {
//错误日志
if(err){
console.log(err);
res.statusCode = 500;
res.end('error occurs ')
}
//目录,输出目录下文件名
if(stats.isDirectory){
// console.log('是目录');
fs.readdir(__dirname+l.path, (err, files) => {
console.log(files);
res.writeHead(200, {"Content-Type":'text/plain;charset=utf-8'})
res.end(files.toString());
});
}else{
//文件,读取文件内容
// console.log('是文件');
fs.readFile(__dirname+l.path, (err, data) => {
res.writeHead(200, {"Content-Type":'text/plain;charset=utf-8'})
res.end(data.toString());
})
}
});
});
server.listen(8888, 'localhost', () => {
console.log('服务器开始运行');
});
server.on('close', () => {
console.log('服务器已停止');
});