Борьба с async.parallel - PullRequest
       6

Борьба с async.parallel

0 голосов
/ 21 декабря 2018

Я пытаюсь собрать несколько результатов mongodb, прежде чем отправлять их всем ejs.Я не думаю, что освоил искусство async.parallel, хотя ... Любые указатели были бы признательны!

Может быть, было бы лучше исследовать async / await немного дальше для этого сценария?

Я новичок в этом - как вы понимаете - и я не совсем уверен, что мой маршрут хорош ...

const express = require('express');
const app = express();
const async = require('async');
const format = require('date-fns/format');
const norskDato = require('date-fns/locale/nb');
app.set('view engine', 'ejs');

// ------------------ START MONGODB-CONNECTION -------------------------------
const MongoClient = require('mongodb').MongoClient;
var db; 

MongoClient.connect(mongo_connection, (err, client) => {
    console.log('MongoClient.connect');
    if(err) { return console.log(err); }
    db = client.db(database);
    // Express serverstart
    app.listen(port, function() {
        console.log("Jonas sin Express-server!");
    });
    });

// Define today start and end
var start = new Date();
start.setHours(0,0,0,0);
var slutt = new Date();
slutt.setHours(23,59,59,999);

// Stack up results from mongodb queries
var stack = {};

// First query
stack.scandic_enk_std = function(callback){
    var query = {skaptdato: {$gte: start, $lt: slutt}, personer: 1, romtype: {$ne: "Non-refundable"} };
    var order = { romnavn: 1, fradato: 1};
    app.get('/revMan/query', (req, res) => { 
        db.collection('scandic_priser').find(query).sort(order).toArray((err, result) => {
        if (err) return console.log(err)        
        callback(err, result);
        });
    });
};

// second query
// ... will be made when the first one actually works

// Render to ejs
async.parallel(stack, function(err, result) {
    //console.log("Stack:" + stack);  || This logs the stack and it looks good
    console.log(result); // logs the result and it looks great
    app.get(mappe, (req, res) => {  
        res.render('index', result ); // index.ejs is dead/empty
    });
});
...