gpt4 book ai didi

node.js - 如何在 Pug 文件中显示数据库中的 "fields"' 值?

转载 作者:太空宇宙 更新时间:2023-11-03 22:11:14 25 4
gpt4 key购买 nike

我在 Node.jsPug 中使用 MongoDBClient

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

但是 find 返回一个游标,因此我不能像这样直接使用它的返回: var array_pizzerias_names = collection.find({cook:'Pizza'}).get('名称')。 (注意:我知道函数 get 不存在)。

我该怎么做?

在我的 Pug 文件中,我写了以下几行:

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

最佳答案

我找到了解决方案。

MongoClient (require('mongodb').MongoClient) 提供了一个 find 方法签名,它有 2 个参数,第二个是打回来 ;后者的最后一个参数是一个 cursor,它有一个 toArray 方法。

方法toArray接受回调;它的最后一个参数是包含所有查找结果的数组,可以在 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
- }

关于node.js - 如何在 Pug 文件中显示数据库中的 "fields"' 值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41322880/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com