jade使用javascript变量(mongo模型)
我正在使用node.js创建网站,并尝试使用js文件中创建的数据模型 即使在routes/browse.ts中调用了res.render(),jade文件中的迭代结果也不会在创建的网页中显示为结果。我在jade文件的每个部分中迭代的方式似乎有问题,尽管console.log显示我在browse.ts中的comicArray不是空的。 以下是我的代码,您可以参考: routes/browse.ts: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
// 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
});