如何在帕格文件中显示数据库中的“字段”的值?

我在Node.jsPug使用MongoDBClient

我想在我的数据库中获得所有的比萨店名称。 因此,我写了这样一行: collection.find({cook:'Pizza'})来select所有的比萨店,并且存在“name”属性。

但是find返回一个游标,所以我不能直接使用它的返回值: var array_pizzerias_names = collection.find({cook:'Pizza'}).get('name') 。 (注意:我知道函数get不存在)。

我怎么能这样做?

在我的帕格文件中,我写了这几行:

  - for(var i = 0; i < array_pizzerias_names.length; i++) { p=array_pizzerias_names[i].name - } 

我find了解决scheme。

MongoClientrequire('mongodb').MongoClient )提供了一个find方法签名,其中有两个参数,第二个是callback; 后者的最后一个参数是一个cursor ,它有一个方法toArray

toArray方法需要callback; 它的最后一个参数是包含find结果的array ,可以在Pug中使用。

下面的代码工作。

Node.js代码(JavaScript文件):

  collection.find({cuisine: speciality}, (error, cursor) => { handleError(error, res); cursor.toArray((error, array_results) => { handleError(error, res); app.locals.speciality = speciality; app.locals.array_documents = array_results; res.render("speciality.pug"); }); }); 

帕格文件:

 doctype html html(lang='fr') head title='Speciality' body h1 Speciality : #{speciality} - Number of buildings : #{array_documents.length} - for(var i = 0; i < array_documents.length; i++) { p=array_documents[i].name + " - Address : " + array_documents[i].address.street + " " + array_documents[i].borough + ", building n°" + array_documents[i].address.building - }