2017-04-15 4 views
0

ich eine Datenbank auf mlab.com habe, dass ich mit diesem Code in meinem Controller erfolgreich Beiträge verfassen kannWie kann ich auf Datenbank (MongoDB) Informationen in der Ansicht (HTML) zugreifen und diese anzeigen?

app.post('/dashboard', function(req, res) { 
    var newEvent = req.body; 
    db.collection('events').insertOne(newEvent, function(err, doc) { 
    if (err) { 
     error(res, "Failed to create new event."); 
    } else { 
     res.sendFile('views/dashboard.html', { root: '.' }); 
    } 
    }); 
}); 

Am localhost: 8080/Armaturenbrett URL, habe ich ein Formular, in dem ein Benutzer in Veranstaltung eingeben Daten.

Jetzt ist meine Frage, wie bekomme ich diese Daten, um es im HTML anzuzeigen? Sie können beispielsweise eine Liste aller Ereignisse anzeigen, die unter derselben/Dashboard-URL, aber an einer anderen Position auf der Seite eingegeben wurden. Ich glaube, ich brauche etwas in dieser Richtung zu tun:

app.get('/dashboard', function (req, res) { 
    db.collection('events').findOne({ 
    eventName : req.body.eventName 
    }, function(err, doc) { 
    // ???? 
    }); 
}); 

Aber wie zeige ich die Daten, die ich wieder in der HTML-Ansicht bekam?

Jede Hilfe würde sehr geschätzt werden, weil ich seit einiger Zeit darauf feststeckt.

+0

Kann Sie den Code Ihrer HTML-View-Datei, von der Sie die/Dashboard-Route aufrufen? – phpkode

Antwort

0

Sie haben zwei Möglichkeiten

1) ein Template-System wie ejs oder Jade verwenden und die Seite machen. Zum Beispiel, wenn Sie Variablen in eine dashboard.ejs Datei, die sich in den Ansichten/Seiten-Ordner sind vorbei, rufen Sie es wie

res.render('views/pages/dashboard', { 
      feild1: value1, 
      feild2: value2 
     }); 

Dann ist es in dashboard.ejs drucken Sie einen Code wie

<div><%= feild1 %></div> 
<div><%= feild2 %></div> 

Lots mit der Dokumentation ist im Netz für die beiden Optionen

2) Senden Sie Daten als Json und verwenden Sie einige JavaScript-Code oder JavaScript-basierte Front-End-Framework, um sie zu rendern. Wenn Sie vor Ende JavaScript-Codierung gut sind, können Sie für diesen Ansatz gehen

var data = { "feild1" : doc.xxx, "feild2" : doc.yyyy }; 
res.setHeader('Content-Type', 'application/json'); 
res.send(JSON.stringify(data)); 

Die json zugegriffen werden kann, einen Ajax-Aufruf von Client-Seite verwenden (Sie jquery dafür verwenden können)

$.getJSON('/dashboard', function(obj) { 
    alert(obj.feild1); 
    alert(obj.feild2); 
}); 
+0

Ich glaube, die Daten werden als JSON-Objekt gesendet und ich kann zum Beispiel mit req.body.eventName darauf zugreifen, aber ich bin mir nicht sicher, wie Sie auf diese Daten in der HTML-Datei –

+0

zugreifen Ich habe keine Anforderung gesehen .send() in Ihrem Code. Können Sie den vollständigen Code posten? – phpkode

+0

Derzeit werden nur Daten abgefragt, aber keine Daten gemäß Ihrem Code gesendet – phpkode

Verwandte Themen