Отобразить данные сбора MongoDB в HTML - PullRequest
0 голосов
/ 15 января 2020

Итак, я новичок в MongoDB.

Я занимаюсь разработкой веб-сайта, на котором я хотел бы получать данные из коллекции MongoDB на основе {Name: String} в этой коллекции и отображать ее в виде HTML Таблица.

Вот что у меня есть:

  • Индекс. js файл (на стороне сервера js)
  • У меня есть коллекция MongoDB под названием CustomersDB, в которой есть некоторые данные (документы) в нем (я написал код, который сохраняет его в этой коллекции клиентов, и он работает)

Что мне нужно:

Какой код я пишу в моем index. js файл для app.get ('/ Customers'), который позволит мне получить данные из коллекции и отобразить их в виде таблицы в файле Customers.e js.

Я использую для этого следующие языки: Node.js, Express, E JS, Body Parser, Cors и MongoDB

1 Ответ

0 голосов
/ 15 января 2020

Вам нужно будет подключиться к вашему кластеру и получить MongoClient так же, как вы это делали для вставки данных. Затем вы можете использовать find ({}) для поиска всех документов в коллекции. Ниже приведен пример кода для начала работы.

const { MongoClient } = require('mongodb');

async function main() {
    /**
     * Connection URI. Update <username>, <password>, and <your-cluster-url> to reflect your cluster.
     * See https://docs.mongodb.com/ecosystem/drivers/node/ for more details
     */
    const uri = "mongodb+srv://<username>:<password>@<your-cluster-url>/test?retryWrites=true&w=majority";

    /**
     * The Mongo Client you will use to interact with your database
     * See https://mongodb.github.io/node-mongodb-native/3.3/api/MongoClient.html for more details
     */
    const client = new MongoClient(uri);

    try {
        // Connect to the MongoDB cluster
        await client.connect();

        await findCustomers(client);

    } finally {
        // Close the connection to the MongoDB cluster
        await client.close();
    }
}

main().catch(console.error);


async function findCustomers(client) {

    // See https://mongodb.github.io/node-mongodb-native/3.3/api/Collection.html#find for the find() docs
    const cursor = client.db("NameOfYourDB").collection("NameOfYourCollection").find({});

    // Store the results in an array. If you will have many customers, you may want to iterate
    // this cursor instead of sending the results to an array. You can use Cursor's forEach() 
    // to do the iterating: https://mongodb.github.io/node-mongodb-native/3.3/api/Cursor.html#forEach
    const results = await cursor.toArray();

    // Process the results
    if (results.length > 0) {
        results.forEach((result, i) => {

            console.log(result);
            // Here you could build your html or put the results in some other data structure you want to work with
        });
    } else {
        console.log(`No customers found`);
    }
}

Этот код основан на коде из моей серии Node.js Quick Start: https://www.mongodb.com/blog/post/quick-start-nodejs--mongodb--how-to-read-documents.

...