创建静态web服务器

摘要:利用http、url、path、fs模块创建静态web服务器
app.js文件

const http = require('http')
const fs = require('fs')
// 引入自定义模块common,用于判断文件类型
const common = require('./module/common')
const path =  require('path')
const url = require('url')

  // 1、创建http服务
http.createServer(function (req, res) {
  //2、通过url模块获取到每一次请求消息里面的url地址pathName
  let pathName = url.parse(req.url).pathname
  pathName = pathName == '/' ? '/index.html' : pathName
  // 3、通过path模块path.extname()方法可以获取url路径下文件后缀名
  // 把url路径下的文件后缀名获取到
  let extname = path.extname(pathName)

  if (pathName !== '/favicon.ico') {
    fs.readFile('./static' + pathName, (err, data) => {
      if (err) {
        res.writeHead(404, { 'Content-Type': 'text/html;charset=utf-8' });
        res.end('404页面不存在');
      }
      // 5、根据文件后缀名判断文件类型
      let mine = common.getFileMine(extname)
      res.writeHead(200, { 'Content-Type': ''+mine+';charset=utf-8' });
      res.end(data);
    })
  }

}).listen(3000);

console.log('Server running at http://127.0.0.1:3000/');

common.js自定义模块:用于判断请求文件的类型

const fs = require('fs')
// 判断文件类型
exports.getFileMine = function (extname) {
    var data = fs.readFileSync('./data/mime.json')
    let mimeObj = JSON.parse(data.toString())
    return (mimeObj[extname])
}
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容