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文件。
图三 最终结果
网友评论