Salida JSON usando Express usando Mysql

He creado una base de datos en mysql

mysql> SELECT * FROM test456; +-----+-------+-------------------------+ | _id | name | image | +-----+-------+-------------------------+ | 1 | Chris | /home/images/index.jpeg | +-----+-------+-------------------------+ 1 row in set (0.00 sec) 

y el progtwig My Express está abajo

 var express = require('express') , http = require('http') , mysql = require('mysql'); // <---- HERE var app = express(); var connection = mysql.createConnection({ host: 'localhost', user: 'root', password: "root", database: 'test123' }); connection.connect(); // <---- AND HERE // all environments app.set('port', process.env.PORT || 7005); app.get('/',function(request,response){ connection.query('SELECT * FROM test456', function(err, rows, fields) { console.log('Connection result error '+err); console.log('no of records is '+rows.length); response.writeHead(200, { 'Content-Type': 'application/json'}); response.end(JSON.stringify(rows)); }); } ); http.createServer(app).listen(app.get('port'), function(){ console.log('Express server listening on port ' + app.get('port')); }); 

Salida::

 [{"_id":1,"name":"Chris","image":[47,104,111,109,101,47,105,109,97,103,101,115,47,105,110,100,101,120,46,106,112,101,103]}] 

Claramente se puede ver que no puedo generar la url de la imagen en lugar de eso estoy generando un número hexadecimal …… cómo hacer que el número hexadecimal a una url

Mi investigación muestra que necesito usar la encoding base64, pero ¿cómo puedo aplicar eso aquí?

algunas ideas

La salida es probablemente porque cada image es un Buffer lugar de una String .

 console.log(Buffer.isBuffer(rows[0].image)); // true 

Es posible que deba modificar el conjunto de caracteres en MySQL a UTF-8 para que sea compatible con Node.js:

 ALTER TABLE test456 CONVERT TO CHARACTER SET utf8; 

Pero, también puede especificar un replacer con JSON.stringify() :

 response.end(JSON.stringify(rows, function (key, value) { if (Buffer.isBuffer(value)) { return value.toString(); } else { return value; } }));