2016-12-14 5 views
1

node.jsアプリケーションの開発に取り掛かっています。しかし、私はどのように「種」と知っているかさえ、このモデルにアクセスしていないNode.js + Mongooseでの基本モデリング

var mongoose = require('mongoose'); 
var Schema = mongoose.Schema; 

var scaleSchema = new Schema({ 
    name: String, 
    displayName: String, 
    notes: [{type: String}] 
}); 

module.exports = mongoose.model('Scale', scaleSchema); 

:私は名前と関連するノートの数を持って音階を、モデル化しようとしています。私は一度にしかロードされていないいくつかのスケールでそれを埋める必要があります。私はこのモデルを必要とし、新しいエントリを作るのにnewを使うことができますが、これを入れなければならないノードアプリケーションの特定の部分はありますか?使用する特定のベストプラクティスはありますか?私はこれを間違っているのですか?

私はここでかなり混乱していますが、私はそれがどのように動作するかについてほとんど把握しているように感じます。誰かが私を正しい方向に向けることができますか?

答えて

2

オブジェクトを作成するような新しいデータベースエントリを作成できます。例としてシーダークラスがあります。

let mongoose = require('mongoose'), 
    User = require('../models/User'); 

    module.exports =() => { 

    User.find({}).exec((err, users) => { 
     if (err) { 
      console.log(err); 
     } else { 
      if (users.length == 0) { 
       let adminUser = new User(); 
       adminUser.username = 'admin'; 
       adminUser.password = adminUser.encryptPassword('admin'); 
       adminUser.roles = ['Admin']; 
       adminUser.save(); 

       console.log('users collection seeded') 
      } 
     } 
    }); 
}; 

他のファイルでは、それを呼び出すことができ、それはあなたのデータベースをシードします。

let usersCollectionSeeder = require('./usersCollectionSeeder');  
usersCollectionSeeder(); 

これが役に立ちます。

構造については、「シーダー」と呼ばれるフォルダーがあります。そこに私はusersCollectionSeeder.jsのような他のすべてのシーダーを必要とし、次に関数を呼び出すdatabaseSeeder.jsというファイルがあります。

ここに私が使用したいサンプル構造があります。

https://github.com/NikolayKolibarov/ExpressJS-Development

0

.create()a mongoose functionを調べるとよいでしょう。

私は、これはそれを行うための唯一の方法ですが、あなたは

var Scale = mongoose.model("Scale", scaleSchema); 
module.exports = Scale; //instead of what you currently have for you last line 

のようなものを追加したい場合がありますならば、あなたは別の部分では

Scale.create({name: varThatHasValName, 
      displayName: varThatHasValdisplayName, 
      notes: varThatHasValnotes}, function (err,scale)); 

ような何かを行うことができますかわかりません新しいスケールを作成する場合は、コードの

私は最近、クラスにノードとマングースを使用しましたが、私は専門家ではありませんが、おそらく私はあなたの質問を理解しています。

関連する問題