zoukankan      html  css  js  c++  java
  • node.js读取图文页面,同时读取文字,图片

    版权声明:本文为原创文章,转载请标明出处

    一个简单的html页面:

    login.html

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Document</title>
    </head>
    <body>
        登录页面login
        <img src="./showimg" />
    </body>
    </html>

    在这里将通过路由的方式来读取图片和文字。

    test8.js:

    var http = require('http');
    var url = require('url');
    var router = require('./router')
    http.createServer(function(request,response){
        // response.writeHead(200,{'Content-Type':'text/html;charset=utf-8'});
        if(request.url!="/favicon.ico"){  //清除2次访问
            var pathname = url.parse(request.url).pathname;
            pathname = pathname.replace(///,'');//替换掉前面的/
            console.log(pathname);
            router[pathname](request,response);
        }
    }).listen(8000);
    console.log("is running")

    逻辑是这样的:在浏览器输入127.0.0.1:8000/login,通过路由识别出login后,调用router.js中login的方法,在这里面去读取login.html,然后再把内容发送回给客户端。当客户端识别到<img src=" "/>时,又会再次发送一个请求到server(服务端),将src里的路由提交到router.js里,服务端接着去读取图片,将图片以二进制流的方式发送给浏览器。

    router.js:

    var optfile = require('./optfile');
    function getRecall(req,res){
        res.writeHead(200,{'Content-Type':'text/html;charset=utf-8'});
        function recall(data){
                res.write(data);
                res.end('');
        }
        return recall;
    }
    module.exports={
        login:function(req,res){
            // function recall(data){
            //     res.write(data);
            //     res.end('');
            // }
            recall = getRecall(req,res);
            optfile.readfile('./views/login.html',recall);
        },
        
        showimg:function(req,res){
            res.writeHead(200,{'Content-Type':'image/jpeg'});
            optfile.readImg('./imgs/scenery.png',res);
        }
    }

    "./views/login.html"就是上面的login页面

    optfile.js:

    var fs = require('fs');
    var url = require('url');
    module.exports={ 
        readImg:function(path,res){
            fs.readFile(path,'binary',function(err,file){  //binary指二进制流文件
                if(err){
                    console.log(err);
                }else{
                    res.write(file,'binary');
                    res.end();
                }
            });
            console.log("异步方法执行完毕");
        }
    }
    未来的你会感谢现在努力的你
  • 相关阅读:
    部分网络加载预训练模型代码实现
    数据不平衡处理方法
    面试题目汇总
    多线程和多进程
    数据结构知识点总结
    GBDT和XGBoost的区别
    GBDT和随机森林的区别
    机器学习-特征处理
    一篇写得很好的关于lct的博客
    Count and Say 2014/10/23
  • 原文地址:https://www.cnblogs.com/cjxblogs/p/6810458.html
Copyright © 2011-2022 走看看