この質問では、私のconfig.js、model.js、およびserver.jsファイルは関連していると思います。誰もが郵便配達員に200のコードを持つ空の配列を返す理由を誰でも説明できますか?私のmongoシェルでは、コレクションとファイルにアクセスして見ることができます。私のnode.js GET呼び出しは、mongo .find()から空の配列を返します。
ここでは、server.jsファイルで作成しようとしているGET呼び出しを示します。応答は、私がインポートした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'});
});
});
作成およびエクスポートブログ投稿スキーマを、それをエクスポートしている私のモデルファイルは、次のとおり
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};
上記のconst {PORT、DATABASE_URL}コマンドBYTインポートされている設定ファイルは、次のとおり
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(posts);私に空の配列を与える[] – John