【问题标题】:nodejs cannot set property '' of undefinednodejs无法设置未定义的属性''
【发布时间】:2019-02-09 03:49:21
【问题描述】:
var list = [
 {
    title : '',
    author : '',
    content : '',
}
]

router.get('/japan',function(req,res){
var sql = 'select * from japan';
conn.query(sql,function(err,rows,fields){
    for(var i = 0 ; i<rows.length;i++){
        list[i].title = rows[i].title;
        list[i].author = rows[i].author;
        list[i].content = rows[i].content;
    }
}); 
res.render('menu/japan/jp',{
    status : req.signedCookies.login_status,
    lists : list,
    });
 });

嗯.... 这是我的代码。 而且我找不到什么问题.. 突然不行了。。。 有什么问题请找我

【问题讨论】:

  • 您尝试设置哪个属性?更具体
  • 数组列表的所有属性

标签: javascript mysql node.js express ejs


【解决方案1】:

请不要忽视这里的异步行为。在循环之后在回调函数中发送您的响应。

var list = [
    {
        title: '', 
        author: '',
        content: ''
    }
]

router.get('/japan', function (req, res) {
    var sql = 'select * from japan';
    conn.query(sql, function (err, rows, fields) {
        for (var i = 0; i < rows.length; i++) {
            list[i] = {
                title: rows[i].title,
                author: rows[i].author,
                Content: rows[i].content
            }
        }
        res.render('menu/japan/jp', {
            status: req.signedCookies.login_status,
            lists: list
        });
    });
});

【讨论】:

  • 这是因为您的列表数组在 i>0 处不包含任何 obj。试试这个:for(var i = 0 ; i
  • 很高兴帮助你!!
猜你喜欢
  • 2018-07-08
  • 1970-01-01
  • 2019-06-23
  • 2021-11-27
  • 2022-10-30
  • 2023-02-10
  • 2015-12-07
  • 2013-05-28
相关资源
最近更新 更多