1.0.0 • Published 3 years ago

dome-http v1.0.0

Weekly downloads
-
License
ISC
Repository
-
Last release
3 years ago
// const http = require('http');
// const path = require('path');
// const fs = require('fs');
// const mime = require('mime');
// http.createServer((req, res) => {
//     let publicDir = path.join(__dirname, 'public', req.url);
//     fs.readFile(publicDir, (err, data) => {
//         if (err) {
//             res.end('404 错误')
//         } else {
//             res.setHeader('Content-type', mime.getType(publicDir));
//             res.end(data);
//         }
//     })
// }).listen(8080, () => {
//     console.log('http:localhost:8080');
// })

// 载入 http 模块
const http = require('http');
// 载入fs模块
const fs = require('fs');
// 载入 path 模块
const path = require('path');
// 载入 url 模块
const url = require('url');
// 载入 mime 模块
const mime = require('mime');
// 创建服务
http.createServer((req, res) => {
    // 获取请求的完整路径名
    let pathname = url.parse(path.join(__dirname, 'public', req.url)).pathname;
    // 设置响应头
    res.setHeader('Content-type', mime.getType(pathname));
    // 判断如果请求的是根目录
    if (req.url === '/') {
        // 请求的路径就是  首页的路径
        pathname = __dirname + 'public/index.html';
    }
    // 判断请求的路径对应的文件是否存在
    if (fs.existsSync(pathname)) {
        // 存在的话就响应
        res.end(fs.readFileSync(pathname));
    } else {
        // 判断请求的路径没有后缀名
        if (path.extname(pathname) === '') {
            // 响应
            res.end('呵呵呵呵呵呵呵呵呵呵');
            return;
        }
        // 响应404页面
        res.end(fs.readFileSync('public/404.html'));
    }
}).listen(8080, () => {
    console.log('http:localhost:8080');
})