node 静态服务器

完整的代码, 可以复制引用

// 引入http模块
let http = require('http');
// 引入url模块 获取域名后面的url
let path = require('path');
let fs = require('fs');
let url = require('url');

let tools = require('./js/tools');

// 创建http服务
// request 获取客户端传过来的信息,response 给浏览器响应的信息
http.createServer((request, response) => {
  // 有些地址后面会有传值 列入/index.html?12324123
  // url.parse(request.url).pathname  url.parse().pathname去掉request.url后面的传值
  let queryUrl = url.parse(request.url).pathname === '/' ? '/index.html' : url.parse(request.url).pathname;
  // extname 获取文件的后缀名(格式名)
  let extname = path.extname(queryUrl);
  // 设置响应头
  response.writeHead(200,{'Content-Type': `${tools['contentType'][extname]};charset="utf-8"`});
// 在页面里
//         var data = {
//                 title: '我是ejs登录页',
//                 list: ['q', 'w', 'e', 'r']
//         };
// <%= title %>
//           <% for(let i = 0; i < list.length; i++) { %>
//         <p><%= list[i] %></p>
//                   <% } %>
  if(queryUrl !== '/favicon.ico'){

    let localUrl = '';
    if (extname === '.html') {
      if (queryUrl === '/index.html') {
        localUrl = './index.html'
      } else {
        localUrl = './pages' + queryUrl
      }
    } else {
      localUrl = '.' + queryUrl
    }


    fs.readFile(localUrl, function(err, str){
      if (err) {console.log(err); return;}
      response.end(str);
    });

    fs.readFile(localUrl, (err, data) => {
      if (err) {
        response.end('页面404,不存在这个页面');
        console.log(err); return;
      }
      response.end(data.toString());
    });
  }

}).listen(3000);

console.log('httpServer http://127.0.0.1:3000');

posted on 2021-04-04 14:36  完美前端  阅读(110)  评论(0)    收藏  举报

导航