2013-11-21 3 views
6

私はNodejsを使い慣れていません。複数のオブジェクトをエクスポートするには?Nodejs:複数のオブジェクトをエクスポートするには?

Sequelize = require('./models').Sequelize 

アドバイスをありがとう:D

を、私は何かのように Sequelizeオブジェクトを使用したい

Page = require('./models').Page 

:例

fs = require("fs") 
Sequelize = require 'sequelize' 

module.exports = (config)-> 
    sequelize = new Sequelize(
    config.database.name 
    config.database.username 
    config.database.password 
    config.database.options 
) 

    fs.readdirSync(config.root+'/server/models/').forEach (file)-> 
    module.exports['Page'] = sequelize.import(config.root + '/server/models/' + file) # --> export this model 
    sequelize # --> export this object 

のために私のようなPageモデルのものを使用したいです

更新: 解決次の方法:

fs = require("fs") 
Sequelize = require 'sequelize' 

module.exports = (config)-> 
    @Sequelize = new Sequelize(
    config.database.name 
    config.database.username 
    config.database.password 
    config.database.options 
) 

    fs.readdirSync(config.root+'/server/models/').forEach (file)-> 
    @Page = sequelize.import(config.root + '/server/models/' + file) 
    @ 

が、私は別の問題を抱えています。モデルを動的に割り当てる方法は?ただ、オブジェクトリテラルでラップ

fs = require("fs") 
Sequelize = require 'sequelize' 

module.exports = (config)-> 
    @Sequelize = new Sequelize(
    config.database.name 
    config.database.username 
    config.database.password 
    config.database.options 
) 

    # @Page = sequelize.import(config.root + '/server/models/page') 
    fs.readdirSync(config.root+'/server/models/').forEach (file)-> 
    str = file.replace('.coffee', '') 
    model = str.charAt(0).toUpperCase() + str.slice(1) 
    @[model] = @Sequelize.import(config.root + '/server/models/' + file) if ~file.indexOf('.coffee') 
    @ 

答えて

5

は道以下 解決第二の問題を更新しました。だろう(CoffeeScriptのなし)の純粋なJSでは:

module.exports = 
    Page: {}, 
    Serialize: {} 
+0

'=' 'でなければなりません:'でのCoffeeScriptで

module.exports = { Page: {}, // or whatever you want to assign it to Serialize: {} // again, set it to what you like }; 

あなたは空のオブジェクトを作成したい場合を除き、インデントを使用しますオブジェクトリテラル:) – robertklep

+1

もちろん。ありがとう、@robertklep – Slavo

+0

お返事ありがとうございます。私の更新を参照してください:D – Zeck

関連する問題