无法读取属性'长度'在哈巴狗/玉

时间:2017-08-15 20:02:19

标签: mysql node.js express pug

我试图制作一个"每个"在我的哈巴狗代码中,但在运行应用程序后,我得到一个错误说"无法读取属性'长度'未定义"。

这是我的哈巴狗模板代码:

extends ../templates/default

block content
  - var item = [];
  form.post(action='http://localhost:3000/users/panel', method='post')
    img.avatar(src='/img/avatar.jpg', alt='')
    input(type='text', name='post', value='', placeholder='Escribe algo')
    input(type='submit', value='Publicar')
  #card-container
    .card
      img.avatar(src='/img/avatar.jpg', alt='')
      .name='@'+user.nombre
      .date='id='+user.id
      p.card='Hi!'
  table
    thead
      tr
        th # pub
        th # user
        th Publicacion
    tbody
      each item in items
        tr
          td=item.id_publicacion
          td=item.id_user
          td=item.publicacion

这是我的控制者:

getPubs: function(req, res, next) {
    var config = require('.././database/config');
    var db = mysql.createConnection(config);

    db.query('SELECT * FROM publicaciones', function(err, rows, fields) {
        res.render('panel', {
            items: rows
        });
    });
}

最后这是路由器(我打电话的地方):

router.get('/users/pubs', controllers.UserController.getPubs);

2 个答案:

答案 0 :(得分:0)

我猜你的mysql连接有错误。你可以像这样在你的控制器上添加错误处理程序:

getPubs: function(req, res, next) {
    var config =require('.././database/config');
    var db = mysql.createConnection(config);

    db.query('SELECT * FROM publicaciones', function(err, rows, fields)
{
    if (err) {
      console.log(err);
      return res.status(500).send({err: err});
    }

    res.render('panel', {
        items: rows
    });
});
}

答案 1 :(得分:0)

您正在打电话"小组"在渲染中,它看起来像是"用户"所以你必须把这个:

getPubs: function(req, res, next) {
    var config =require('.././database/config');
    var db = mysql.createConnection(config);

    db.query('SELECT * FROM publicaciones', function(err, rows, fields) {
        res.render('users/panel', {
            items: rows
        });
    });
}