簡體   English   中英

Express Node JS + HTTP協議:通過請求/響應發送圖像

[英]Express Node JS + HTTP Protocols: Sending image over request/response

我需要幫助:我在節點JS中運行express,並且試圖通過HTTP請求和/或響應傳遞圖像

快速初始化:

var app = express();
app.engine('.html', require('ejs').__express);
app.set('views', __dirname + '/views');
app.set('view engine', 'html');
app.use(express.static(__dirname + '/public'));
app.use(bodyParser.text({type:'text/plain'}));

Http請求(index.html內的ajax):

var request = new XMLHttpRequest();
request.open('GET', '/request');
request.setRequestHeader('Content-Type', 'text/plain');
request.onreadystatechange = function() {
    if(request.readyState == 4){
        //do stuff with request.responseText
    }
};
request.send('request for image xxxx');

快速處理請求:

app.get('/request', (req, res) => {
    if(req.body == 'request for image xxxx')
        res.status(200).send(???);
    //other stuff
});

我的中間件'bodyParser'確實支持其他經過url編碼的數據類型,但是我不知道該怎么做,所以我被迫只使用文本/純文本消息,除非在需要時出現問題發送圖像。

我猜我也許可以使用緩沖區來做到這一點,但是我絕對不知道它的語法是什么,而我已經在使用的HTTP處理語法可能非常復雜。 我對HTTP協議很陌生。

您可以將圖像編碼為base64並將其作為文本發送。 在服務器上收到后,將其寫為映像。

var base64Data = 'base64encoded'
require("fs").writeFile("image.png", base64Data, 'base64', function(err) {
    console.log(err);
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM