マングースにはクエリストリームと呼ばれる関数があるというヒントがあります。それが私の解決策につながります。
var Bericht = new Schema({
name : String
, mail : String
, standort : String
, betreff : String
, inhalt : String
, datum : Date
});
var Bericht = mongoose.model('Bericht', Bericht);
var stream = Bericht.find().stream()
, names = []
, mails = []
, standorts = []
, betreffs = []
, inhalts = []
, datums = []
, i=0;
function closeHandler() {
function closeHandler() {
console.log(JSON.stringify(names));
};
stream.on('data', function (doc) {
if (doc.name) {
names.push(doc.name);
mails.push(doc.mail);
standorts.push(doc.standort);
betreffs.push(doc.betreff);
inhalts.push(doc.inhalt);
datums.push(doc.datum);
}
})
stream.on('close', closeHandler)
私のスキーマには名前以上のものがあります。この場合は6つの属性です。stream.on関数を使用した後、データベースからすべてをmails [1]のような配列に入れました。これは、mongodbの2番目のエントリのメールです。これにより、関数を使用してデータベースのコンテンツ全体をhtmlで簡単に表示できます。多分これは多すぎますが、このボードが好きなので、このスレッドを完成させます。
この関数を使用すると、戻り値としてすべての名前の単純なテーブルを作成します。
function namestable(){
value = "<table border='1'><tr><th>Namen</th></tr>"
for(var i=0;i<names.length;i++){
value+="<tr><td>"+names[i]+"</td>";
;}
value+="</table>";
return value;
}
したがって、htmlコードを作成するときに、この関数をnodejsに追加する必要があります。
var body = '<html>'+
'<head>'+
'<meta http-equiv="Content-Type" content="text/html; '+
'charset=UTF-8" />'+
'</head>'+
'<body>'+
'<form action="/upload" method="post">'+
namestable()+
'<input type="submit" value="Hario" />'+
'</form>'+
'</body>'+
'</html>';
response.writeHead(200, {'Content-Type': 'text/html'});
response.write(body);
response.end();
好き :)