0%

710_http模块_静态资源服务

/**
 * 创建一个 HTTP 服务,端口为 9000,满足如下需求
 * GET  /index.html        响应  page/index.html 的文件内容
 * GET  /css/app.css       响应  page/css/app.css 的文件内容
 * GET  /images/logo.png   响应  page/images/logo.png 的文件内容
 */
const http=require('http');
const fs=require('fs')

const server=http.createServer((request,response)=>{
    response.setHeader('content-type','text/html;charset=utf-8')
    //读取文件内容

    //获取请求URL的路径
    let {pathname}=new URL(request.url,'http://127.0.0.1');

    //拼接文件路径
    let filePath=__dirname+'/page'+ pathname;

    //读取文件fs异步API
    fs.readFile(filePath,(err,data)=>{
      if(err){
        response.statusCode=500
        response.end('文件读取失败')
        return;
      }
      //响应文件内容
      response.end(data)
    })

    // if(pathname ==='/index.html'){
    //   let html=fs.readFileSync(__dirname+'/page/index.html')
    //   response.end(html)
    // }else if(pathname ==='/css/app.css'){
    //   let css=fs.readFileSync(__dirname+'/page/css/app.css')
    //   response.end(css)
    // }else if(pathname ==='/images/logo.png'){
    //   let img=fs.readFileSync(__dirname+'/page/images/logo.png')
    //   response.end(img)
    // }else{
    //   response.statusCode=404;
    //   response.end('<h1>Not Found</h1>')
    // }
})

//监听端口,启动服务
server.listen(9000,()=>{
    console.log('服务已经启动...');
})