私は何千ものチュートリアルを通して自分自身をクリックしたが、私はまだこの時点で固執していると思う。私はエクスプレスアプリが書いているすべてのデータをレンダリングする最初はmongodbに、埋め込まれたjavascriptに。私はmongodbからすべてのデータを表示している簡単なテーブルを持っていたいと思います。また、ルートを呼び出すときには、常に実際のデータを取得します。Node.js Expressを使った.ejs-TemplateへのMongoDBデータの受け渡し
私の最初のアイデアは、データを配列に保存することでした。これを.ejsファイルに渡します。私の問題は、find() - 関数を呼び出した後、配列にデータを書き込むことができないということです。
モデルsubscriber.js:
const mongoose = require('mongoose');
var uniqueValidator = require('mongoose-unique-validator');
var subscriberSchema = mongoose.Schema({
nr: Number,
mailIdent: {
type: String,
unique: true
},
from: String,
emails: {
type: String,
default: ''
},
text: String,
uLink: String,
anwalt: Boolean,
create_date:{
type: Date,
default: Date.now
}
});
subscriberSchema.plugin(uniqueValidator);
var Subscriber = module.exports = mongoose.model('Subscriber', subscriberSchema);
私は、トピックには本当に新しいだと私はちょうどいじりてるようには感じています。
app.get('/', function(req, res){
var subs = Subscriber.getSubscribers().toArray();
console.log(subs);
res.render('index',{subs: subs});
});
私が知っている、私の.ejsはまだ少しシンプルに思われること:その後、私はindex.ejsに私のapp.jsでそれを渡したい
//get Subscriber
/*module.exports.getSubscribers = Subscriber.find(function(err, subs){
if(err) return console.error(err);
console.log(subs);
});
*/
module.exports.subscriber = Subscriber;
module.exports.getSubscriberByID = function(_id, callback){
Subscriber.findById(_id, callback);
};
module.exports.getSubscribers = function(){
var subscribers = Subscriber.find({});
return subscribers;
};
を助けてください。しかし、これまでのところ、それだけで機能しなければならない:
<!DOCTYPE html>
<html>
<head>
<link href="/assets/styles.css" rel="stylesheet" type="text/css" />
</head>
<body>
<% include partials/nav.ejs %>
<h1>Welcome to the Database</h1>
<p>You won't find more Information than here!</p>
<p>Table</p>
<table>
<colgroup span="5" class="columns"></colgroup>
<tr>
<th>Nr</th>
<th>Name</th>
<th>Mail</th>
<th>uLink</th>
<th>Anwalt</th>
</tr>
<% for (var i = 0; i<subs.length; i++) { %>
<tr>
<td><%= subs[i].nr</td>
<td><%= subs[i].name</td>
<td><%= subs[i].email</td>
<td><%= subs[i].uLink</td>
<td><%= subs[i].anwalt</td>
</tr>
<% } %>
</table>
</body>
</html>
私は怒っていました。私は.ejsファイルのJavascriptを閉じなかった。それは間違いなく最も間違っていました –
エラーを表示することができます – YouneL