首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >node.js:将mysql池输出到html或jade

node.js:将mysql池输出到html或jade
EN

Stack Overflow用户
提问于 2016-06-28 09:12:06
回答 2查看 202关注 0票数 0

我们正在尝试从mysql检索数据,以便在html/jade中显示数据。不幸的是,我们无法在HTML表上显示记录。

因为我们使用mysql池,所以事情变得更加困难。这是我们目前的代码。(使用由快递生成器生成的骨架)

/model/bew.js

代码语言:javascript
运行
复制
var mysql = require('mysql');
var pool = require('./databaseConnection');

var sorter = 'db.bew';
var sql = 'SELECT * FROM' + pool.escapeId(sorter);
var records = pool.query(sql, function(err, rows, fields) {
    if (err) throw err;

    // foreach
    // for(row of rows){
    //   console.log(row);
    // }

    //console.log('The fields: ', rows[0].id);
});
module.exports = records;

(注释掉for-of和console.log将打印SQL行)

路由/index.js

代码语言:javascript
运行
复制
var express = require('express');
var router = express.Router();
var records = require('../models/bew');

/* GET home page. */
router.get('/', function(req, res, next) {
  res.render('index', {
    title: 'Bewerber',
    records: records
   });

});

module.exports = router;

视图/index.jder (html会更好)

代码语言:javascript
运行
复制
extends layout

block content
  body

    table#tblBewerber
      thead
        tr
          th Name
          th Status
          th Letzte Änderung
          th Datum
          th Angelegt
          th Nächster Schritt bis
          th Nächster Schritt
          th Zul. bearbeiten
          th Bew. für
      tbody
        each record in records
          tr
            td=record.namen

我们做了几次测试,似乎index.js没有从'bew.js‘中获取数据?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-06-28 13:44:22

我把它拆开了一点,使它更容易阅读。我就是这样解决的。

代码语言:javascript
运行
复制
function sqlQuery( req, res, next ) {
    pool.query("SELECT ...", function (err, rows) {
        req.records = rows;
        next();
    })
}


router.get('/', sqlQuery, function(req, res, next) {
    res.render('index', {
        title: 'Bewerber',
        records: req.records
    });
});

这样,您就可以将它们拆分到不同的文件中,如果这正是您想要达到的目标。

票数 1
EN

Stack Overflow用户

发布于 2016-06-28 10:43:07

您似乎无法分离快速路由器和sql查询。这就是我们现在的工作方式:

路由/index.js

代码语言:javascript
运行
复制
var mysql = require('mysql');
var express = require('express');
var router = express.Router();

var pool = require('../models/databaseConnection');
var sql = require('../models/bew');


router.get('/', function(req, res, next) {
  pool.query(sql, function(err, rows, fields) {
    if (err) throw err;

    res.render('index', {
      title: 'Bewerber',
      records: rows
     });
    });
});
module.exports = router;

模型/bew.js

代码语言:javascript
运行
复制
var pool = require('./databaseConnection');
var sorter = 'bewerber.bewerber';
var sql = 'SELECT * FROM' + pool.escapeId(sorter);
module.exports = sql;

如果能更多地将他们分开,那就太好了--我们不知道这怎么可能。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38071895

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档