У меня есть крошечный express сервер, который я хочу использовать для получения некоторых данных из коллекции в моей базе данных:
const express = require('express');
const MongoClient = require('mongodb').MongoClient;
const app = express();
const PORT = 3000;
const MONGO_URI = 'mongodb://127.0.0.1:27017/test';
async function myReport(schoolId) {
const client = new MongoClient(MONGO_URI, { useNewUrlParser: true, useUnifiedTopology: true });
try {
await client.connect()
console.log("Hello!"); // This is never ran unless I remove "await" from the above line :S
const db = client.db();
const result = db.collection('states').find({}).map((a, b, c) => {
console.log("This never runs", a, b, c);
return "asdf";
});
return result;
} catch (err) {
console.log("ERROR", err);
}
client.close();
};
// Hoisting server
app.get('/api/reports/states/:id', async function (req, res, next) {
const report = myReport(req.params.id)
res.json(report); // {}
});
app.listen(PORT, (err) => {
console.log(`reporting listening in`, PORT);
});
Я действительно не знаю, что я здесь делаю не так. Пытался использовать .each, toArray, и я не могу получить фактические результаты в виде списка.
Я следил за этими документами: https://mongodb.github.io/node-mongodb-native/3.6/api/Cursor.html
Есть идеи, что я делаю не так?