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中...");
    });
  • 相关阅读:
    Docker 安装各种环境
    N级树形菜单封装
    一个周期算出所有高电平的个数
    DDR3新版(3):DDR3自动读写控制器
    DDR3_新版(2):IP核再封装
    数电(6):时序逻辑电路
    Vue表单那些事
    liunx环境修改minio默认端口和后台启动
    liunx 后台启动mongodb服务
    liunx安装和部署nacos配置中心
  • 原文地址:https://www.cnblogs.com/heyang78/p/7531609.html
Copyright © 2011-2022 走看看