zoukankan      html  css  js  c++  java
  • Node.js 文件系统流pipe到Http响应流中

    // 内置http模块,提供了http服务器和客户端功能(path模块也是内置模块,而mime是附加模块)
    var http=require("http");
    var fs=require("fs");
    var _dirname="./html"
    
    // 创建服务器,创建HTTP服务器要调用http.createServer()函数,它只有一个参数,是个回调函数,服务器每次收到http请求后都会调用这个回调函数。服务器每收到一条http请求,都会用新的request和response对象触发请求函数。
    var server=http.createServer(function(req,resp){
        console.log("请求地址是:"+req.url);    
    
       if('GET'==req.method && '/images'==req.url.substr(0,7) && '.jpg'==req.url.substr(-4)){
           fs.stat(_dirname+req.url,function(err,stat){
                if(err || !stat.isFile()){
                    resp.writeHead(404);
                    resp.end('File not found');
                    return;
                }
    
                serve(_dirname+req.url,'application/jpg');
           });
       }else if('GET'==req.method && '/'==req.url){
            serve(_dirname+'/index.html','application/html');
       }else{
            resp.writeHead(404);
            resp.end('Unrecongnized cmd');
            return;
       }
    
       function serve(path,type){
            // 告诉浏览器发送什么样的资源
            resp.writeHead(200,{"Content-Type":type});
            fs.createReadStream(path).pipe(resp);
       }
    });
    
    // 服务器开始运作监听端口
    server.listen(3000,"localhost",function(){
        console.log("服务器开始运作,监听端口3000中...");
    });
  • 相关阅读:
    常见Dos命令
    常用快捷键小技巧
    springboot集成JPA返回Json报错 com.fasterxml.jackson.data
    docker安装mysql 8.0.20 版本 超详细教程
    8.24 Java自学
    8.23 Java自学
    8.22 Java自学
    8.21 Java自学
    8.20 Java自学
    8.19 Java自学
  • 原文地址:https://www.cnblogs.com/heyang78/p/7531609.html
Copyright © 2011-2022 走看看