搭建一个静态服务器

开门见山看需求:
搭建一个静态服务器,具备路由功能,结构如下

  • sample->test.html
  • index.js
  • README.md

index.js代码如下:

var http = require('http')
var fs = require('fs')
var path = require('path')
var url = require('url')
 //载入require模板

 //创建服务器
var server= http.createServer(function(request,response){
    setTimeout(function(){
        response.setHeader('Content-Type','text/html; charset=utf-8')
        response.writeHead(200, 'haha')
        var pathObj = url.parse(request.url,true) 
        console.log(pathObj) 
        console.log(request.url)  
        //解析路由
        switch(pathObj.pathname){
          case '/getTemperature':  //url有/getTemperature后缀返回数据
                var ret
                if(pathObj.query.city == 'Fujian'){
                  ret = {
                    city: 'Fujian',
                    temperature: '25'
                  }
                }else{
                  ret = {
                    city: pathObj.query.city,
                    temperature: '我啷个晓得'
                  }
                }
                response.end(JSON.stringify(ret))
                break;


          case '/user/123':    //url有/user/123后缀返回README文件
                response.end( fs.readFileSync(__dirname + '/README.md') )
                break;

         

                //默认返回静态文件
            default:  response.end(fs.readFileSync(__dirname+'/sample'+'/test.html'))
    }}),2000})
console.log('open http://localhost:8080')
server.listen(8080)

  • 输入http://localhost:8080/getTemperature?city=Fujian 得到{city:Fujian,teperature:25}

  • 输入http://localhost:8080/getTemperature?city=Beijing 得到{city:Beijing,teperature:我啷个晓得}

  • 输入http://localhost:8080/user/123 返回README文件

  • 输入http://localhost:8080 默认返回sample中test文件


如此一来,具备路由功能的简单的服务器就完成了。

你可能感兴趣的:(搭建一个静态服务器)