【问题标题】:Split data from mysql in jade/pug view在jade/pug视图中从mysql中拆分数据
【发布时间】:2018-10-28 09:51:40
【问题描述】:

下面的代码从数据库中生成一个地址列表,看起来像“123 Hollywood Ave., Los Angeles, California”。但是我只想展示 123 Hollywood Ave。我尝试使用 js 中的split(',') 方法拆分地址,但它仍然没有做任何事情并显示正常的地址详细信息

地址.js

var express = require('express');
var router = express.Router();

/* GET home page. */
router.get('/', function(req, res, next) {
    console.log(req.session.userId);
    var user = req.session.user,
        userId = req.session.userId;
    console.log(userId);
    //console.log('ddd='+userId);
    if (userId == null) {
        res.redirect("/login");
        return;
    }
    req.app.get('db').query("SELECT address FROM customer", function(err, rows, fields) {
        if (err) throw err
        var customer_list= rows;
        var address_list = [];

        for (var i = 0; i < customer_list.length; i++){
            var split = customer_list[i].split(',');
            address_list.push(split[0]);
            console.log(address_list)
        }
            res.render('fix_address', {
                address_list: address_list,
            });                
        });
     });

module.exports = router;

地址.pug

extends layout

block content

  div.container
    for customer in customer_list
      li        
          = customer.address_list

【问题讨论】:

  • 这是一个简单的错字——你在路由中传递了变量address_list,但在模板中引用了变量customer_list

标签: javascript node.js express pug


【解决方案1】:

确保在路由和模板中引用相同的变量。

res.render('fix_address', {
  address_list: address_list,
});

应该是:

res.render('fix_address', {
  customer_list: customer_list
});

如果你想让这个模板渲染任何东西:

for customer in customer_list
  li= customer.address_list

【讨论】:

  • 我实际上有类似的东西,但使用了 for 循环。但我不断收到错误,它说 foreach 不是一个函数
  • 那么请用该代码编辑您的问题,否则我们就是猜谜游戏。
  • 完成。我重新启动了我的 npm 并尝试了 for 循环,它现在没有给出错误但上面更新的代码没有显示任何内容。
猜你喜欢
  • 1970-01-01
  • 2016-12-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-06-10
  • 1970-01-01
  • 2012-01-22
相关资源
最近更新 更多