Das erste Mal arbeite ich mit Knoten- und Template-Engines (ja, ich weiß, schrecklicher Ort zum "Start", aber was auch immer). Ich baue einige Inhalte aus einem json Strom, und am Ende würde Ich mag diesen Inhalt spucken in meinem HTML-Seite auf ein div aus, wie in diesem folgt (aktualisiert) Express.js Snippet:nodejs/express/oboe.js & pug: Erhalte node() -Ereignisse, um das dom zu aktualisieren
app.get('/foo', function (req, res) {
//... get my stream called 'mystream'
//... get ready to append content for items found in json stream
var htmlbuf = "";
//now process the json stream:
oboe(mystream)
.node('{bar}', function(aBar){
//eventually, I'd like to actually append individual new DOM elements,
//but for now I'll settle for just spitting out raw html:
var buffer = '<p>Found a bar with name'+ aBar.name + '</p>';
res.render('index', {itemsfound: htmlbuf});
});
});
index.pug:
doctype html
html
head
link(type='text/css', rel='stylesheet', href='./css/main.css')
title Hello
body
h1 Hello world!
div#results.listing
items= itemsfound
ich erhalte die Fehlermeldung ‚Fehler: nicht Header gesetzt, nachdem sie gesendet werden‘. Ich glaube also, das Problem ist, dass die oboe.node() zu jeder Zeit feuert und ich den Antwort-Inhalt nicht zur richtigen Zeit sende? Was ist der Code/das Framework, der benötigt wird, um die oboe.node() - Ereignisse zu verkabeln, so dass sie dom-Elemente in meiner Mug-Vorlage anvisieren oder erstellen können und die Antwort korrekt senden? Vielen Dank.
Ist Ihr Ziel create Konsolen-Viewer auf Client-Seite, nicht wahr? Erweitern Sie erklären, was Sie als Ergebnis benötigen? –
@Aikon das Ziel ist ein Div in einer Webseite. Ich versuche nicht, einen "Konsolen-Viewer" zu erstellen, was auch immer das ist. Ignoriere die Zeile 'console.log (buffer);'. Der springende Punkt ist, ich möchte meine Daten nicht auf die Konsole schreiben. Ich möchte es auf die Webseite schreiben. – rstruck