nodejs - How to read and output jpg image? nodejs - How to read and output jpg image? node.js node.js

nodejs - How to read and output jpg image?


Here is how you can read the entire file contents, and if done successfully, start a webserver which displays the JPG image in response to every request:

var http = require('http')var fs = require('fs')fs.readFile('image.jpg', function(err, data) {  if (err) throw err // Fail if the file can't be read.  http.createServer(function(req, res) {    res.writeHead(200, {'Content-Type': 'image/jpeg'})    res.end(data) // Send the file data to the browser.  }).listen(8124)  console.log('Server running at http://localhost:8124/')})

Note that the server is launched by the "readFile" callback function and the response header has Content-Type: image/jpeg.

[Edit] You could even embed the image in an HTML page directly by using an <img> with a data URI source. For example:

  res.writeHead(200, {'Content-Type': 'text/html'});  res.write('<html><body><img src="data:image/jpeg;base64,')  res.write(Buffer.from(data).toString('base64'));  res.end('"/></body></html>');


Two things to keep in mind Content-Type and the Encoding

1) What if the file is css

if (/.(css)$/.test(path)) {  res.writeHead(200, {'Content-Type': 'text/css'});   res.write(data, 'utf8');} 

2) What if the file is jpg/png

if (/.(jpg)$/.test(path)) {  res.writeHead(200, {'Content-Type': 'image/jpg'});  res.end(data,'Base64');}

Above one is just a sample code to explain the answer and not the exact code pattern.