2017-05-25 8 views
1

午後の午後。私は小さな連絡先リストアプリケーションを構築するために取り組んできました、私はデータとセッション項目を格納するためにmongooseを使いたいと思っていました。私は前にmongooseを使ったことがないので、一緒にフォローするための簡単なPDFを手に入れました。ほとんどの人は理にかなっていて、何かをまとめて認証を実行して、UserSchemaを使って新しいユーザーを追加することができました。よく働く。私が今少し失っているのは、どのようにしてContactSchemaという2番目のスキーマを作成するためにmongooseを使用できるかということです。私はスキーマ(user.jsとcontact.js)ごとに2つの異なるファイルを作成すると思っていましたが、私はそれを試しても、私はmongoターミナルでshow collectionsを実行してもコンタクトコレクションを表示しません。エラーをスローします。私がロモモンゴでそれをチェックするときも同じです。Mongoose:ユーザースキーマとTodoスキーマの作成

は私のサーバーのファイルは次のようにすべての私のモデルを呼び出します。

require('./server/models').connect(config.dbUri); 
// config.dbUri -> "dbUri": "mongodb://localhost/react_app" 

マイuser.jsファイル:

const mongoose = require('mongoose'); 
const bcrypt = require('bcrypt'); 

// define the User model schema 
const UserSchema = new mongoose.Schema({ 
    email: { 
    type: String, 
    index: { unique: true } 
    }, 
    password: String, 
    name: String 
}); 

...bcrypt code here 

module.exports = mongoose.model('User', UserSchema); 

マイcontact.jsファイル:

const mongoose = require('mongoose'); 

// define the Contact model schema 
const ContactSchema = new mongoose.Schema({ 
    content : String, 
    updated_at : Date 
}); 

module.exports = mongoose.model('Todo', ContactSchema); 

マイ指数.jsファイルにuser.jsとcontact.jsの両方のスキーマが必要です。

const mongoose = require('mongoose'); 

module.exports.connect = (uri) => { 
    mongoose.connect(uri); 

    // plug in the promise library 
    mongoose.Promise = global.Promise; 

    mongoose.connection.on('error', (err) => { 
    console.error(`Mongoose connection error: ${err}`); 
    process.exit(1); 
    }); 

    require('./user'); 
    require('./contact'); 
}; 

index.js、user.js、contact.jsファイルはすべて自分のモデルフォルダ内にあります。私はこれをコンソールでエラーなしで実行することができますが、私はまだmongo側の連絡先コレクションを見ていません。私は正しい道にここにいますか?いつものように、どんな助けや関連記事も大歓迎です。より良いアイデアを得るには、完全なプロジェクトへのgithubのリンクがあります:https://github.com/DanDeller/Base。もう一度ありがとう。

答えて

3

まだ連絡先コレクションにデータを追加しましたか?

Mongooseは、MongoDBコレクションにマップする抽象スキーマを提供する「ORM」のソートです。ただし、これらのスキーマは、マングースを使用しているアプリケーションのコンテキストでのみ存在します。 MongoDBにはスキーマの概念がありません。それはかなりダムのドキュメントストアです。 ORMで何かを定義すると、通常、DBに物理テーブルが作成されるSQLとは異なります。 mongooseが提供するスキーマは純粋に抽象的なものであり、アプリケーションレベルでのみ適用されます。

あなたの連絡先スキーマに基づいてレコードを作成し、それをストアに保存するようmongooseに指示するまで、mongoは連絡先を認識しません。

+0

チップありがとうございました。それは理にかなっている。私はいくつかの項目を追加し、私が思いつくことができるものを見ようとします。 –

関連する問題