Javascript ES2020动态导入()的问题

Javascript ES2020动态导入()的问题,javascript,dynamic-import,ecmascript-2020,Javascript,Dynamic Import,Ecmascript 2020,我正在解析目录中的所有模块,初始化它们,最后导出它们。所讨论的模块是knex型号,如下所示: // schema/users.js import createModel from './common' const name = 'User' const tableName = 'users' const selectableProps = ['userId', 'name', 'email', 'updated_at', 'created_at'] export default knex

我正在解析目录中的所有模块,初始化它们,最后导出它们。所讨论的模块是
knex
型号,如下所示:

// schema/users.js

import createModel from './common'

const name = 'User'
const tableName = 'users'

const selectableProps = ['userId', 'name', 'email', 'updated_at', 'created_at']

export default knex => {
  const model = createModel({
    knex,
    name,
    tableName,
    selectableProps,
  })

  return { ...model }
}
每个模型定义都使用通用零件进行了扩展:

// schema/common.js
export default ({
  knex = {},
  name = 'name',
  tableName = 'tablename',
  selectableProps = [],
  timeout = 1000,
}) => {
  const findAll = () =>
    knex
      .select(selectableProps)
      .from(tableName)
      .timeout(timeout)

  return {
    name,
    tableName,
    selectableProps,
    timeout,
    findAll,
  }
}
最后,初始化并导出所有模型:

// schema/index.js
import { readdir } from 'fs'
import { promisify } from 'util'
import { default as knex } from '../db'

let modules = {}

export default new Promise(async $export => {
  const readFileAsync = promisify(readdir)

  const getModels = async dir => await readFileAsync(dir)

  const files = await getModels(__dirname)

  for await (const file of files) {
    if (file !== 'common.js' && file !== 'index.js') {
      let mod = await import(__dirname + '/' + file).then(m => m.default(knex))
      modules[mod.name] = mod
    }
  }

  await $export(modules)
  console.log(modules)
})
上面的方法似乎有效,但我不知道如何从另一个文件导入其中一个模块。我正试图按照以下思路做一些事情:

const User = async () => await import('../schema') // not working


在此方面的任何帮助都将不胜感激

不工作
似乎不是一条可行的错误消息,可以告诉您出了什么问题。o0很高兴知道。我实际上恢复了在后端使用commonJS风格的导入,一切都很好:-)
const User = (async () => await import('../schema'))() // not working