nodejs07-搭建静态web服务器

作者: 经纬文学 | 来源:发表于2019-11-07 16:48 被阅读0次

    http创建的应用

    http.js
    var http = require('http');
    
    /**
     * http.createServer()创建http服务器
    */
    
    http.createServer(function(req,res){
      /**
       * req = request 获取浏览器参数
       * res = response 返回数据
      */
      res.writeHead(200, {"Content-Type": "text/html;charset=UTF-8"});
      res.write('写啊写啊写bug<br>');
      res.end('Hello World')
    }).listen('8080')
    
    console.log('server is running')
    

    什么是web服务器

    一般指网站服务器,是指驻留于因特网上某种类型计算机的程序,可以向浏览器等Web客户端提供文档。可以放置网站文件,让全世界浏览,也可以放置数据文件,让全世界下载,web服务器分为Apache、Nginx、IIS,web服务器工作原理:连接过程、请求过程、应答过程以及关闭连接。

    创建node服务器

    http.js
    var http = require('http');
    var fs = require('fs')
    var path = require('path')
    var url = require('url')
    var Config = require('./model/getSuffixName')
    /**
     * http.createServer()创建http服务器
    */
    console.log(path.extname('index.html')) // 输出.html
    http.createServer(function(req,res){
      /**
       * req = request 获取浏览器参数
       * res = response 返回数据
      */
    
      /**
       * 过滤掉?之后的数据
       * 例: www.xx.com/index.html?asdasdadas=2 -----> www.xx.com/index.html
       */
      var urlName = url.parse(req.url).pathname
    
      if (urlName == '/favicon.ico') return
    
      if (urlName == '/') {
        urlName = 'index.html'
      }
      var suffixName = Config.getSuffixName(path.extname(urlName))
    
      fs.readFile(`static/${urlName}`, (err, data)=>{
        if (err) {
          fs.readFile('static/404.html', (error, result)=>{
            if (error) return
            res.writeHead(200, {"Content-Type": `${suffixName};charset=UTF-8`});
            res.write(result)
            res.end()
          })
        } else {
          res.writeHead(200, {"Content-Type": `${suffixName};charset=UTF-8`});
          res.write(data)
          res.end()
        }
      
      })
    
    }).listen('8080')
    
    console.log('server is running')
    
    model/getSuffixName.js
    function getSuffixName (url) {
      switch (url) {
        case '.html':
          return 'text/html';
        case '.css':
          return 'text/css';
        case '.js':
          return 'text/js';
        default:
          return 'text/html';
    
      }
    }
    
    exports.getSuffixName = getSuffixName
    

    相关文章

      网友评论

        本文标题:nodejs07-搭建静态web服务器

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