検索

ホームページ  >  に質問  >  本文

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

1.api.js

2.db.js


3.vue

4.データベース

###消す:###

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

ringa_leeringa_lee2762日前1195

全員に返信(4)返信します

  • 滿天的星座

    滿天的星座2017-06-05 11:10:50

    @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
  • 伊谢尔伦

    伊谢尔伦2017-06-05 11:10:50

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

    返事
    0
  • 天蓬老师

    天蓬老师2017-06-05 11:10:50

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

    返事
    0
  • 某草草

    某草草2017-06-05 11:10:50

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

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

    返事
    0
  • キャンセル返事