javascript - nodejsを使用してデータベースのデータをフロントに転送する データベースにはデータがあり、接続は成功しているのに、空の配列が取得されるのはなぜですか?
ringa_lee
ringa_lee 2017-06-05 11:08:50
0
4
1167

1.api.js

2.db.js


3.vue

4.データベース

###消す:###

得られた結果は空の配列ですが、リンクとデータベースは両方とも正しいのですが、これはなぜですか? ? ?

ringa_lee
ringa_lee

ringa_lee

全員に返信(4)
滿天的星座

@cheesekun が言ったように、この問題の核心は、mongoose がモデル内のコレクション名 (最初のパラメーター) を自動的に複数形に変更することです。

ここでは私自身の実験プロセスを示し、以下の 2 つの解決策

を提供します。 まずトピックの意味に基づいて簡単なプロジェクトを作成しました

リーリー app.js

リーリー module/db.js

リーリー router/api.js視覚化ツールを介してmongodbに接続し、事前にテストデータベースリストコレクションの下にドキュメントを挿入します


問題が見つかりました

ブラウザから直接アクセスし、件名と同じ空の配列を取得しました

理由を見つけてください

コレクションにドキュメントを挿入してみます

の下部にあるコード

を介してデータ

を挿入します リーリー module/db.js再実行してブラウザ経由でアクセスすると、コードを通じて挿入されたデータが返されました


この時点で、視覚化ツールを通じて、追加のセットが存在することがわかります、コードを通じて挿入したデータがその中に含まれています

lists

解決策

コレクション名を明示的に指定しない場合、mongooseはmodel()の最初のパラメータをコレクション名として複数形に自動的に変更します

2 つのソリューションを提供し、両方ともコレクション名を指定します 最初のタイプ:

3番目のパラメータをmongoose.model()に渡してコレクション名を指定します

リーリー

2 番目のタイプ:

2番目の構成アイテムをスキーマに渡してコレクション名を指定します

リーリー
いいねを押す +0
伊谢尔伦

50セント賭けます。
mongooseモデルを定義するとき、テーブル名にsが自動的に追加されますが、ログインとリストは追加されません
データベースを呼び出すことができません
これは以前書いたブログであり、一番下に記載されています
mongoose deep海穴

いいねを押す +0
Peter_Zhu

console.log(data)をres.send(data)に追加し、結果があるかどうかを確認します

いいねを押す +0
某草草

まず、コンソールの xhr の戻り値に値があるかどうかを直接確認します。値がある場合は、値が正しく取得されていないことを意味します。

そうでない場合は、値をまったく送信していないことを意味します。つまり、バックエンドで問題が発生しているため、戻って確認できます。

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート