美文网首页Node.js
Node.js基础入门03

Node.js基础入门03

作者: 祈粼 | 来源:发表于2021-02-24 16:27 被阅读0次

    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

        本文链接:https://www.haomeiwen.com/subject/ofvsfltx.html