В этом вопросе я считаю, что мои файлы config.js, model.js и server.js актуальны. Может ли кто-нибудь объяснить, почему это возвращает пустой массив с кодом 200 в почтальоне? В моей оболочке mongo я могу получить доступ и посмотреть коллекцию и файлы.Мой вызов node.js GET возвращает пустой массив из mongo .find()
Вот вызов GET, который я пытаюсь сделать в файле server.js. Ответ должен быть массивом моих файлов из импортированного mongo db.
const {PORT, DATABASE_URL} = require('./config');
const {BlogPost} = require('./models');
app.get('/posts', (req, res) => {
BlogPost
.find()
.exec()
.then(posts => {
res.json({
posts: posts.map(
(post) => post.apiRepr())
});
})
.catch(
err => {
console.error(err);
res.status(500).json({message: 'Internal server error'});
});
});
Моя модель файла, создание и экспорт BlogPost схемы и экспорта это:
const blogPostSchema = mongoose.Schema({
title: {type: String, required: true},
content: {type: String, required: true},
author: {
firstName: {type: String, required: true},
lastName: {type: String, required: true}
}
});
blogPostSchema.virtual('authorString').get(function() {
return `${this.author.firstName} ${this.author.lastName}`.trim()});
blogPostSchema.methods.apiRepr = function() {
return {
id: this._id,
title: this.title,
author: this.authorString,
content: this.content
}
};
const BlogPost = mongoose.model('BlogPost', blogPostSchema);
module.exports = {BlogPost};
конфигурационный файл, который импортируется бют в сопз {PORT, DATABASE_URL} команда выше:
exports.DATABASE_URL = process.env.DATABASE_URL ||
global.DATABASE_URL ||
'mongodb://localhost/mongoose-blog';
exports.PORT = process.env.PORT || 8080;
и, наконец, выход я получаю на мой Почтальон (после ввода в GET локального хоста: 8080/пост) и ключ: значение постоянного типа: приложения/JSON в моем заголовка:
{
"posts": []
}
.then (сообщений => { res.json ({ сообщений: posts.map ( (пост) => post.apiRepr()) });} ) я думаю, что проблема с этой частью код. попробуйте console.log() здесь и проверьте –
спасибо, я сделал это. console.log (сообщения); также дает мне пустой массив [] – John