ReferenceError-使用函数加载类

时间:2019-04-20 19:16:05

标签: javascript node.js

我有以下课程:

  admin.initializeApp({
    credential: admin.credential.cert(serviceAccount),
    databaseURL: 'https://yourfirebaseproject.firebaseio.com',
  });

  const db = admin.database();

  db.ref('User').on('value', async (snapshot) => {
    insertOrUpdate(User, 'users', snapshot.val());
  });

在我的const insertOrUpdate = (model, tableName, data) => { const firstData = data[0] ? data[0] : data; return model.knex().raw( knex(tableName).insert(data).toQuery() + ' ON CONFLICT ("id") DO UPDATE SET ' + Object.keys(firstData).map((field) => `${field}=EXCLUDED.${field}`).join(', ') ); }; 内,我通过以下方式加载了该类:

class ScheduledContent {

    constructor(knex) {
        this.knex = knex
    }

    getAllContent() {
        let res = knex.select().from('scheduled_content')
        return res
    }
}

module.exports = {
    ScheduledContent
};

但是,出现以下错误:

  

ReferenceError:未定义ScheduledContentist

有人建议我在做什么错吗?

1 个答案:

答案 0 :(得分:1)

在您的ScheduledContent文件中,您导出了一个包含ScheduledContent类的对象:

module.exports = {
  ScheduledContent
};

使用destructuring assignment将导入更改为:

const { ScheduledContent } = require('./service/ScheduledContent')