Я хочу создать блог, используя Express и MongoDB. У меня проблема с получением и доступом к данным из базы данных. В базе данных все работает правильно, и я могу подключиться к базе данных.
Это мой файл "app. js":
var bodyParser = require('body-parser'),
mongoose = require('mongoose'),
express = require('express'),
app = express();
app.set('view engine', 'ejs');
app.use(bodyParser.urlencoded({extended: true }));
app.use(express.static('public'));
mongoose.set('useNewUrlParser', true);
mongoose.set('useUnifiedTopology', true);
mongoose.connect('mongodb://localhost/restful_blog_app');
var blogSchema = new mongoose.Schema({
title: String,
image: String,
body: String,
created: {
type: Date,
default: Date.now
}
});
var Blog = mongoose.model('Blog', blogSchema);
I made a post manually and then I commented it out
// Blog.create({
// title:"hi",
// image:"https://unsplash.com/photos/lu17ZHlivDU",
// body:"hello there!"
// });
app.get('/', function(req, res){
res.redirect('/blogs');
});
app.get('/blogs', function(req, res){
//retrieve all the data from db
Blog.find({}, function(err, blogs){
if (err) {
console.log('ERROR!');
} else {
res.render('index', {blogs: blogs});
}
});
});
Мой "INDEX.e js" file:
<h1>This is the index page!</h1>
<% for(var i = 0; i < blogs.length; i++){ %>
<div>
<h2><%= blogs.title %></h2>
<img src="/<%= blogs.image %>">
<span><%= blogs.created %></span>
<p><%= blogs.body %></p>
</div>
<% } %>
Проблема в том, что я не вижу ничего в моем "/ BLOGS" в браузере в качестве вывода, когда я пишу <%= console.log(typeof blogs) %>
.
Он говорит "UNDEFINED" но когда я пишу <%= blogs %>
, это отображается в браузере как вывод:
{ _id: 5ea37ad64ad11f2330f2ba72, title: 'Test Blog', image: 'https://unsplash.com/photos/lu17ZHlivDU', body: 'Hello this is a blog post!', created: 2020-04-24T23:48:38.974Z, __v: 0 },{ _id: 5ea389202d2a4b29c853bade, title: 'hi', image: 'https://unsplash.com/photos/lu17ZHlivDU', body: 'hello there!', created: 2020-04-25T00:49:36.834Z, __v: 0 }