jade使用javascript变量(mongo模型)

jade使用javascript变量(mongo模型),javascript,node.js,mongodb,typescript,pug,Javascript,Node.js,Mongodb,Typescript,Pug,我正在使用node.js创建网站,并尝试使用js文件中创建的数据模型 即使在routes/browse.ts中调用了res.render(),jade文件中的迭代结果也不会在创建的网页中显示为结果。我在jade文件的每个部分中迭代的方式似乎有问题,尽管console.log显示我在browse.ts中的comicArray不是空的。 以下是我的代码,您可以参考: routes/browse.ts: // Comic GET request router.get('/', function(req

我正在使用node.js创建网站,并尝试使用js文件中创建的数据模型

即使在routes/browse.ts中调用了res.render(),jade文件中的迭代结果也不会在创建的网页中显示为结果。我在jade文件的每个部分中迭代的方式似乎有问题,尽管console.log显示我在browse.ts中的comicArray不是空的。 以下是我的代码,您可以参考:

routes/browse.ts:

// Comic GET request
router.get('/', function(req, res) {
// Saving found comics into the array named 'comics'
comic.comicModel.find({}, function(err, comics){
    if (err || !comics) throw err;
    res.locals.comicArray = comics.slice(0, 10);
    comicArray = res.locals.comicArray;
  });
res.render('browse', { title: 'Browse', comicArray: comicArray});
});
views/browse.jade:

extends layout
block content
    .row.column.text-centent
        h1= title

    .listbox
        ul
            each val in comicArray
                li= val.title
models/Comic.ts(漫画模式):


comic.ComicModel.find()是一个异步函数。您需要将
res.render()
调用移动到该回调中。

comic.comicModal.find()
是一个异步函数。您需要将
res.render()
调用移动到该回调中。

哦,我还没有充分说明我的问题。即使在routes/browse.ts中调用res.render(),jade文件中的迭代结果也不会显示在创建的网页中。我在jade文件的每个部分中迭代的方式似乎都有问题。不要使用注释框获取其他信息。请使用问题中的链接包含此内容。您需要从内部调用res.render查找回调函数,否则comicArray仍将未定义。find函数是异步的,这意味着在从DB返回结果之前调用res.render。谢谢大家的帮助。我已经按照建议修改了我的代码,现在它工作得非常好!哦,我还没有充分说明我的问题。即使在routes/browse.ts中调用了res.render(),jade文件中迭代的结果也不会显示在创建的网页中。我在jade文件的每个部分中迭代的方式似乎都有问题。不要使用注释框获取其他信息。请使用问题中的链接包含此内容。您需要从内部调用res.render查找回调函数,否则comicArray仍将未定义。find函数是异步的,这意味着在从DB返回结果之前调用res.render。谢谢大家的帮助。我已经按照建议修改了我的代码,现在它工作得非常好!
export var comicSchema = new mongoose.Schema({
    title: String,
    description: String,
    genre: String,    
    thumbnail: String,
    cells: Array,
    votes: Number,
    views: Number,
    comments: Array    
 });