mysql - Express Mysql 的 JSON 输出

标签 mysql json node.js express

我已经成功连接了mysql数据库。无论是否有错误,我似乎都无法获取查询数据以在控制台中输出任何内容。我设置一切的方式有什么问题吗?

var express = require('express');
var path = require('path');
var logger = require('morgan');
var cookieParser = require('cookie-parser');
var bodyParser = require('body-parser');
var routes = require('./routes/index');
var app = express();
var mysql = require('mysql');


var app = express();

var connection = mysql.createConnection({
    host: 'localhost',
    user: 'root',
    password: "root",
    database: 'photo_gallery'
});

connection.connect();


// view engine setup
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'ejs');
app.use(logger('dev'));
app.use(bodyParser.json());
app.use(bodyParser.urlencoded());
app.use(cookieParser());
app.use(express.static(path.join(__dirname, 'public')));

app.locals.appdata = require('./data.json');

app.use('/', routes);

app.get('/',function(request,response){
connection.query('SELECT title FROM stories', 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));
    });

} );   

module.exports = app;

最佳答案

我能够将 mysql 中的数据解析为 json 对象,并在主目录中名为“route”的文件夹中设置的 index.js 文件中的快速路由中使用该对象。

var express = require('express');
var router = express.Router();
var appdata = require('../data.json');
var mysql = require('mysql');


var connection = mysql.createConnection({
    host: 'localhost',
    user: 'root',
    password: "root",
    port : 3306, //port mysql
    database: 'photo_gallery'
});

connection.connect();


router.get('/', function(request,response) {
  connection.query('SELECT * FROM stories', function(err, rows, fields) {
    if (err) {
      console.log('Encountered an error:', err.message);
      return response.send(500, err.message);
    }
    thedata = ({'services' : rows});
    console.log(thedata);

    response.render('index', { 
    title: 'home',
    data: thedata, 
    page: 'home'
  });
  });
});

我的 index.ejs 文件中的这段代码使用了 JSON 对象。

<a href="/services/"><li>Service Overview</li></a>
   <% thedata.services.forEach(function(item) { %>
      <a href="/services/<%= item.title %>"><li><%= item.title %></li></a>
  <% }); %>

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

相关文章:

mysql - 为什么我从这个 SQL 查询中得到错误的结果?

用于选择已声明变量的 MySQL 与 SQLSERVER 语法

javascript - 构建动态 json 树

PHP 4.4.1 JSON 编码

mysql - 备份Sql数据库时Windows批处理文件错误

javascript - 如何使用 PHP 中的 ID 数组从 mysql 表中删除多行

javascript - 使用 HTML 将 JSON 数据转换为动态表

javascript - NPM 知道脚本是否作为前/后脚本运行

css - 在使用 Node 进行 SASS 编译期间注入(inject)变量

javascript - 设置 Node 使其在外部可见?