Jade halkı kapsam belirleme

Jade şablonumda yerlileri kullanırken kapsam belirleme konusunda bir sorunum var. Benim kodum ...

function(req, res) {
    BlogPostModel.find({}, function(e, data) {
        if (e) throw e;

        posts = data;

        var path = __dirname + "/view/admin/blog.jade",
            template = fs.readFileSync(path, "utf8"),
            options = { filename: path },
            fn = jade.compile(template, options),
            html = fn(posts);

        res.end(html);
});

Yukarıdaki kod gayet iyi görünüyor, ancak 'veri' global bir değişken yapmak zorundayım. 'Verileri' doğrudan fonksiyon çağrımıma aktarmayı tercih ederim. Ama bunu yaptığımda Jade'den bir 'değişken tanımlanmamış' hatası alıyorum. 'Neden' verilerimin neden kapsam dışı olduğunu bilen var mı?

Teşekkürler,

FBZ

1

1 cevap

Yani bu bir kapsam sorunu değildi. Tartışmamı 'yerliler' olarak çağırmak zorunda kaldım. Bunun gibi...

BlogPostModel.find({}, function(e, locals) {
    if (e) throw e;
    var path = __dirname + "/view/admin/blog.jade",
        template = fs.readFileSync(path, "utf8"),
        options = { filename: path },
        fn = jade.compile(template, options),
        html = fn(locals);

    res.end(html);
});

Jade'in herhangi bir ismin global bir değişkenini kabul ettiği garip görünüyor, ancak yerel bir değişken 'yerliler' olarak adlandırılmalı. Her neyse sıralandı.

2
katma