Передача массива объекту JSON для рендеринга Jade

У меня есть сервер node.js, написанный в экспрессе, и в определенный момент я отправляю на какую-то страницу .jade массив. Проблема в том, что при рендеринге страницы Jade компилятор Jade отображает массив как [object Object] , а компилятор JavaScript в Chrome жалуется на то, что он говорит «Неожиданный идентификатор».

Это код Jade:

!!! 5
html(lang="en")
    head
    title= "Rankings"

    body
        h1 Ranking

        div(id="rankings")

    script(type='text/javascript')

        function fillRanking(){
            var rankArray = #{ranking};
            alert("inside fillranking");
            var divElement = document.getElementById("rankings");
            for(var i = 0; i< rankArray.length; i++){
                divElements.innerHTML += "" + i+1 + ". " + rankArray[i].Username + " " + rankArray[i].Points;
            }
        }

        fillRanking();

Как видите, это очень просто, я просто заполняю div информацией, содержащейся в переменной # {rank} , передаваемой node.js в Джейд. Предупреждение во второй строке не срабатывает, потому что ошибка неожиданного идентификатора возникает, как только я пытаюсь назначить переменную # {rank} .

Ниже приведен код в моем node.js с выражением

app.get('/ranking', function (req, res) {
    //get the first ten people in the ranking
    var firstTen = getRanking(10, function(results){
        //compute the array of results
        var result = {
            ranking: [],
        }
        for(var i = 0; i < results.length; i++){
            result.ranking[i] = results[i];
        }
        //render the ranking with all the info
        console.log(result);
        res.render(__dirname + '/pages/ranking/ranking.jade', {
            ranking: result,
        });
    });
});

. Я создаю объект с массивом результатов, помещаю в него результаты, полученные мной из запроса, и передаю его механизму рендеринга. Вызов console.log (results) правильно распечатывает объект result , например, так:

{ ranking: 
   [ { Username: 'usr1',
       _id: 4ed27319c1d767f70e000002,
       Points: 100 },
     { Username: 'usr2',
       _id: 4ed27326c1d767f70e000003,
       Points: 100 } ] 
}

Я действительно не знаю, как обрабатывать переменную, переданную на страницу Jade . Что бы я ни делал, я все время получаю ошибку «Неожиданный идентификатор». Кто-нибудь из вас знает, как я могу это решить?

Спасибо

15
задан Masiar 28 November 2011 в 08:44
поделиться