Sequels 如何一次性加载全部模型?

class Models {

    async setModels(app){

        const sequelize = require('sequelize')
        const files = await this.readModels()

        global.Models = {}
        global.Models._Op = sequelize.Op

        app.context.Models = {}
        app.context.Models._Op = sequelize.Op

        files.forEach((value, key, arr) => {

            global.Models[key] = utils.db().import( value )
            app.context.Models[key] = utils.db().import( value )

        })

    }

    async readModels(){

        const fs = require('fs')
        const modelsPath = __dirname + '/db/'

        return new Promise( async (resolve, reject)=>{

            await fs.readdir(
                modelsPath,
                (err, data) => {

                    if (err){
                        resolve(err)
                        return
                    }

                    const map = new Map()

                    for ( let i in data ){

                        let name = data[i].match(/^[0-9A-Za-z]*/gi)
                        map.set(
                            name,
                            modelsPath + data[i]
                        )

                    }

                    resolve(map)

                }
            )

        })

    }

}

module.exports = Models

如何才能一次性加载全部模型而不是像我现在写的这样那么复杂?

阅读 1.2k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题