【问题标题】:Node Express Vars pass to jade templateNode Express Vars 传递给玉模板
【发布时间】:2013-11-19 21:47:28
【问题描述】:

我在将我的变量传递给玉时遇到问题:

app.js

var express = require('express');
var http = require('http');
var path = require('path');


var app = express();

// Eviroment Variables
app.set('port', process.env.PORT || 8080);
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'jade');
app.use(express.favicon(__dirname + '/public/images/favicon.ico'));
app.use(express.logger('dev'));
app.use(express.json());
app.use(express.urlencoded());
app.use(express.bodyParser());
app.use(express.methodOverride());
app.use(express.cookieParser());
app.use(express.session({ secret: 'secret' }));
app.use(app.router);
app.use(express.static(path.join(__dirname, 'public')));

在我的服务管理器中:

app.get('/view/users', function(req, res) {
        if (req.session.username === null || req.session.username === undefined){
    // if user is not logged-in redirect back to login page //
            res.redirect('/');
        }
        else{
            userProvider.fetchAllUsers(function(error, users) {
                console.log(users);
                res.render('portal/users', {locals:{
                        udata : req.session.username,
                        users : users
                }});
            });
        }
    });

控制台输出如下:

[ { title: 'Herr',
givenname: 'xxx',
lastname: 'xxx',
name: 'xxx',
username: 'xxx',
password: 'TcVUEcbQfcb35d7dbadd5f0cc7836a06bd170a91d9',
email: 'xxx',
phone: '0000-000000',
fax: '0000-000000',
lastlogin: '23.03.1987',
state: '1',
createdate: 'November 15th 2013, 1:19:15 pm',
_id: 528611433891166f07000001 } ]

我的 Jade 模板如下所示:

tbody
    - var users = [{_id:'', name:'', username:'', email:'', phone:'', fax:'', lastlogin:'', createdate:'', state:''}]
    - each user in users
          tr
              td= user._id
              td= user.name
              td= user.username
              td= user.email
              td= user.phone
              td= user.fax
              td= user.lastlogin
              td= user.createdate
              td= user.state

我的用户将不会显示。我之前用页面标题测试过它,但没有成功。

谢谢!

编辑: 我现在添加以下内容:

res.render('portal/users', {
                            users : users
                    }); 

到我的经理,并将其添加到我的玉模板:

tbody
                    - if (users.length) {
                    - users.forEach(function(user) {
                    tr
                        td= user._id
                        td= user.name
                        td= user.username
                        td= user.email
                        td= user.phone
                        td= user.fax
                        td= user.lastlogin
                        td= user.createdate
                        td= user.state
                    - });}

一切正常。

【问题讨论】:

  • 请将解决方案作为答案发布并接受。

标签: node.js express pug


【解决方案1】:

jade 直接支持each,可以进一步简化

tbody
each user in users
  tr
    td= user._id
    ...

【讨论】:

    猜你喜欢
    • 2015-08-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-09
    • 1970-01-01
    • 1970-01-01
    • 2015-01-11
    • 1970-01-01
    相关资源
    最近更新 更多