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

标签 node.js mongodb-query pug

我在 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/

相关文章:

node.js - 如何在node-postgres中捕获client.connect()?

mongodb - 嵌套数组插入mongodb?

MongoDB $查找嵌套文档

node.js - 哪个Node.js模板引擎在服务器端使用时性能最好?

jsonlint 模式未验证

mysql - Sequelize.js:包括意外。元素必须是模型、关联或对象

java - findAndModify 失败并出现错误 : "Cannot update ' field 1' and ' field1' at the same time

javascript - Jquery 在 PUG 中不工作。即使我包含了 jQuery,也无法识别 $ 符号

javascript - 从对象及其子对象中获取所有名称

javascript - dotenv 没有正确赋值