Node.js学习——HTTP服务器与客户端(二)

2018-11-20  本文已影响0人  zhuangX

1.实验目的

    使用Node.js实现服务器发送图片给客户端。

2.实验方法

    通过使用http模块实现服务器发送图片给客户端。

3.实验环境

    windows10操作系统
    node.js v8.9.4版本

4.实验步骤

    4.1. 服务器端代码

const http = require("http"); 
const fs = require("fs");
const server = new http.Server();

server.on("request", function(req, res) {
    res.writeHead(200, {
        "content-type": "text/plain"
    });
    //网页上的图片传输是通过Base64将图片编码成字符串而实现的,因为readFileSync()默认编码为null,所以这里
    //我们采用base64编码读取图片。
    let data = fs.readFileSync("./girl.jpg", {encoding: "base64"});
    res.write(data);
    res.end();
});

server.listen(8888, function() {
    console.log('HTTP服务器开启成功');
});

          将上述代码保存为serevr.js文件,执行后可看到结果如下。

图一 server.js文件执行结果

    4.2. 客户端代码

const http = require("http");
const fs = require("fs");

let reqData = "";
//设置host和port
let option = {  
    "host": "127.0.0.1",
    "port": "8888"
}

const req = new http.request(option);

req.on("response", function(res) {
    res.on("data", function(chunk) {
        reqData += chunk;
    });
    res.on("end", function() {
        //当writeFile()写入字符串时默认编码为utf-8,所以这里我们将其设定为base64编码。 
        //将图片写入当前文件夹并保存为test.jpg
        fs.writeFile("./test.jpg", reqData, "base64", function(err) {
            console.log("图片写入成功");
        });
    });
});

req.end();

          将上述代码保存为client.js文件,执行后可看到结果如下。


图二 client.js文件执行结果

    4.3. 最终结果
          这时,打开文件夹即可看到已经保存的test.jpg文件。


图三 最终结果

5 .参考文献

上一篇下一篇

猜你喜欢

热点阅读