Node.js基础入门03

node笔记 --祈粼

const http = require('http')  // 获取http模块
const url = require('url')  // 获取url模块
const fs = require('fs')    // 获取fs模块 fileSystem
const path = require('path') // path模块提供了一些用户处理文件路径的小工具

// 创建服务
const server = http.createServer((req, res) => {
    if (req.url == 'favicon') return;
    // 获取端口号以后的URL
    let pathname = url.parse(req.url).pathname
    // 判断是文件还是文件夹
    if (pathname.indexOf('.') < 0) {
        pathname += '/index.html'
    }
    // 获取文件名
    let fileUrl = './' + path.normalize(pathname)
    // 获取后缀名
    let extname = path.extname(fileUrl)
    // 读取需要加载的文件
    fs.readFile(fileUrl, (err, data) => {
        // 错误返回404
        if (err) { //一般情况下都是路径引起的错误
            res.writeHead(404, { "Content-type": "text/html;charset=UTF-8" });
            res.end("404,页面未找到,page not found");
        }
        // 获取content-type并返回
        getMime(extname, (mime) => {
            res.writeHead(200, { 'Content-type': mime })
            res.end(data)
        })
    })
})

const getMime = (mime, callback) => {
    // 读取文件类型的JSON 根据后缀来判断文件的类型
    fs.readFile('./mime.json', (err, data) => {
        if (err) throw err;
        let datas = JSON.parse(data)
        callback(datas[mime])
    })
}

// 监听端口号和访问地址
server.listen(3000, '127.0.0.1')

你可能感兴趣的:(Node.js基础入门03)