Also habe ich gerade angefangen, MEAN zu lernen und ich möchte nur ein bestimmtes Feld einer Datenbank zeigen, die ich auf einem Node-Server erstellt habe. Ich benutze auch Express. Hier ist mein Code soweit.MongoDB & NodeJS: Wie man ein bestimmtes Feld auf einer Jade-Datei auf einem Server anzeigt
index.js
router.get('/generate', function(req, res) {
// get out mongoclient to work with our mongo server
var MongoClient = mongodb.MongoClient;
// where the mongodb server is
var url = 'mongodb://localhost:27017/data';
MongoClient.connect(url, function(err, db) {
if(err) {
console.log('Unable to connect to server', err);
} else {
console.log('Connection established');
var collection = db.collection('compliments');
collection.find({}).toArray(function(err, result) {
if (err) {
res.send(err);
} else if (result.length) {
res.json(result); // problem here
} else {
res.send('No documents found');
}
db.close();
});
}
});
});
generate.jade
doctype html
html
head
title("Compliment Generator")
body
h1 !{title}
block content
h3.
!{compliment}
Dies ist, wie es auf localhost aussieht: 3000/generieren
[{"_id":"570b50f8265f2536d2fd6ed6","type":"compliment","content":"You are absolutely gorgeous."},{"_id":"570b50f8265f2536d2fd6ed7","type":"compliment","content":"You are wonderful."},{"_id":"570b50f8265f2536d2fd6ed8","type":"compliment","content":"I could look at you all day."}]
Wie kann ich es machen, so dass es nur den "Inhalt" zeigt? Vielen Dank!
Danke! Jetzt sieht es so aus: [{"content": "Du bist absolut hinreißend."}, {"Content": "Du bist wundervoll."}, {"Content": "Ich könnte dich den ganzen Tag ansehen."} ], wie würde ich den "Inhalt" Teil loswerden und nur die tatsächlichen Komplimente zeigen? – user298519
Sie greifen auf die Elemente wie ein Schlüsselwertpaar zu, so dass 'result [0] .content' Ihnen den Wert des' content'-Feldes für das erste Element geben würde. Sie können diese mit einer for-Schleife oder einem anderen gewünschten Iterationsmuster durchlaufen. – Vistari
Mein vorheriger Kommentar lässt mich aus irgendeinem Grund nicht bearbeiten. Nur eine zusätzliche Anmerkung, wenn es immer noch eine JSON-Zeichenfolge ist, müssen Sie es in ein JavaScript-Objekt mit der folgenden Syntax "JSON.parse (result);" – Vistari