передача данных с помощью nodejs / mongodb во внешний интерфейс (не определено в браузере) - PullRequest
0 голосов
/ 17 июня 2020

Я хотел бы получить данные из базы данных mongodb и передать их в frond. Я написал эту функцию, она работает в консоли, я получаю массив, содержащий некоторые элементы, но в браузере я получаю undefined . Я использую nodejs (express, e js) и mongodb.

getAllOrders: function(companyName) {
    client.connect().then((client)=>{
         let db = client.db('data')
         db.collection('order').find({companyName:companyName}).toArray(function(err, result) {
            if (err) throw err
            console.log(JSON.stringify(result.map(a => a.orderIdem))) // output all orderIdems
        });
    });
} 

// Приложение. js

app.get('/', async function(req, res) {
    let orderItem = await db.getAllOrders("SuperTrader");
    console.log(orderItem); // here i get a response
    res.render('index', {
        orderItem: orderItem,
    });
});

// интерфейс // index. e js

   <h2>Variable</h2>
   <p><%= orderItem %></p> 

// orderItem [0] тоже не работает

1 Ответ

0 голосов
/ 17 июня 2020

вы ничего не возвращаете из функции. попробуйте это:

getAllOrders: async function(companyName) {
    return client.connect().then((client)=>{
         let db = client.db('data')
         return await db.collection('order').find({companyName:companyName});
    });
} 
...