【问题标题】:Jade page being rendered multiple timesJade 页面被多次渲染
【发布时间】:2016-08-22 08:16:58
【问题描述】:

我有一个玉石页面,它从 url 中获取一个参数(用户名)并呈现有关此用户的信息。但是,页面被渲染了好几次。当我打印 url 时,第一次似乎是完整的(带有用户名),而其他时候则没有。我正在使用节点 js 和角度来提供数据。这是我的代码:

NODE JS:(myuser 是我正在测试的现有用户的静态值)

router.get('/personel', function (req, res) {
    var user_name = req.query['username']; 
    var fullname= 0;
    var fields = ['fullname'];

    if(req.url == '/personel?username=myuser'){
        models.users.findAll({
            attributes: fields,
            limit: 1,
            where: {username: user_name}
        }).then(function (result) {

            res.render('personel',
            {       
                title : 'Personel', 
                username: user_name,
                fullname: result[0].fullname,
            })
        }); 
        console.log(req.url);
    }
});

控制器:

Todos.get().success(function(data) {
    if ($scope.todosi != undefined) {
        $scope.todos = data;
        $scope.loading = false;
    }
});

翡翠代码:

form
        input(type='text', ng-model='todosi.username', value=username)
        table.table.table-hover
          tr
            td full name
            td
              input(type='text', ng-model='todosi.fullname', placeholder=fullname)
        button.btn.btn-primary.btn-lg(type='submit', ng-click='createTodo()') Update

因此,如果我在浏览器中将页面加载为http://localhost:31/apiv2/customer/personel?username=myuser,则用户名为空,但 fullname 具有实际全名的值。

在日志中,使用 req.url 我最初得到/personel?username=myuser,然后只有/personel

但是在 Mozilla 开发者工具 -> 网络中,引用者总是http://localhost:31/apiv2/customer/personel?username=myuser

我试图强制页面仅在 url 包含用户名作为参数时才呈现,但它没有改变任何内容

PS:不管它在这里看起来如何,jade 是正确的,没有给出任何错误。

【问题讨论】:

    标签: javascript angularjs node.js express


    【解决方案1】:

    首先,如果您有查询参数,更好的方法是:

    router.get('/personel/:username', function (req, res) {});
    

    其次,我认为您的页面被加载了多次,因为您有不同(但相同)的路线。

    如果您使用此解决方案:

    router.get('/personel/:username', function (req, res) {});
    

    检查路线的顺序。 此命令无效:

     /personel/:username
     /personel/sayhello
    

    因为sayhello 它被捕获为:username

    【讨论】:

      猜你喜欢
      • 2017-08-22
      • 1970-01-01
      • 2014-10-10
      • 1970-01-01
      • 2017-10-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-03
      相关资源
      最近更新 更多