gpt4 book ai didi

node.js - Node : How to export multiple objects?

转载 作者:搜寻专家 更新时间:2023-10-31 22:24:10 28 4
gpt4 key购买 nike

我是 Nodejs 新手。如何导出多个对象?例如

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 模型:

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

我想使用 Sequelize 对象,例如:

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

谢谢你的建议:D

更新:解决方法如下:

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')
@

最佳答案

只需将它们包装在一个对象字面量中。在纯 JS(没有 CoffeeScript)中将是:

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

在 coffeescript 中你使用缩进,除非你想制作一个空对象:

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

关于node.js - Node : How to export multiple objects?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20122962/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com