mysql - 使用 Mysql 使用 Express 的 JSON 输出

标签 mysql node.js express

我已经在mysql中创建了一个数据库

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

我的 express 程序如下

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'));
});

输出:

[{"_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]}]

很明显,你可以看到我无法生成图像 url,而是生成十六进制数......如何将十六进制数生成 url

我的研究表明我需要使用 base64 编码 但我如何在这里应用它

任何想法

最佳答案

输出可能是因为每个 image 是一个 Buffer 而不是 String

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

为了与 Node.js 兼容,您可能需要将 MySQL 中的 alter the character set 转换为 UTF-8:

ALTER TABLE test456 CONVERT TO CHARACTER SET utf8;

但是,您也可以使用 JSON.stringify() 指定一个 replacer:

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

关于mysql - 使用 Mysql 使用 Express 的 JSON 输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18842874/

相关文章:

php - Android:使用 SSL/HTTPS 与 PHP 连接到数据库并使用 POST/GET

php - MySQL 从 PHP 插入 ://INPUT multiple rows

mysql - 如何将各种 MySQL 查询结果合并到单个 JSON 对象中

javascript - 如何告诉 Express 不要解析请求的查询字符串?

node.js - Express+node 禁止CSRF

Mysql 列类型

php - 使用 PHP 的 Foreach

javascript - 在node.js中循环SQL数据库时如何正确创建嵌套json数组?

javascript - 是否有将非结构化数据转换为 csv 的 npm 包?

javascript - 将三元运算符转换为 if/else 语句