MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Express-Anzeige von Mongodb-Dokumenten in Jade

https://naltatis.github.io/jade-syntax-docs/ Enthält nützliche Informationen für view.jade-Dateien

index.js benötigt ein Array, um die Mongo-Ergebnisse zu speichern:

 var results_from_mongo = [];

und jedes Mal, wenn wir ein Ergebnis von der Abfrage erhalten, schieben wir es auf das Array (Array-Sprache für „ein Element in das Array einfügen“)

  results_from_mongo.push(doc); //Push result onto results_array

dann müssen wir es einfach mit an res.render:

schicken
  res.render('index', {"results": results_from_mongo });

Also in Ihrer index.js Datei

/* GET home page. and iterate, display the collection to console log. */
router.get('/', function (req, res) {
    var MongoClient = require('mongodb').MongoClient
    var url = 'mongodb://localhost/EmployeeDB';

    var results_from_mongo = [];

    MongoClient.connect(url, function (err, db) {
        var str = db.collection('employee').find();
        str.each(function (err, doc) {
                console.log(doc);   
                results_from_mongo.push(doc); //Push result onto results_array
        });  

        //now we have a results array filled like this:
        // results_from_mongo = ["some string", "some string", "some string"]
       //so let's pass them to the jade file to render them.

      res.render('index', {"results": results_from_mongo });

//Dadurch werden die Daten im JSON-Format an die JADE-Datei mit dem Namen "index" (index.jade) übergeben

Die Daten sehen an dieser Stelle so aus

    { "results" : ["some string", "some string", "some string"] } 

und in index.jade können wir so etwas tun wie

extends layout

block content
h1= title
h2= "results from mongo:"
select
  each mongo_result, i in results
    div Result #{i} #{mongo_result}