У меня приложение NodeJS, работающее fastify
с fastify-objectionjs
.
Для удобства я хотел бы сгруппировать все модели в один файл с именем _main.js
, где я экспортирую массив моделей в папке models
.
Поскольку регистрация fastify-objectionjs требует массива моделей, я подумал, что могу просто импортировать массив из моего _main.js
и передать его в том виде, как он есть, в функцию регистрации.
Но ObjectionJS говорит мне, что Недопустимые поставляемые модели .
/ app.js (точка входа в узел)
const fastify = require('fastify')({
logger: true
})
const knexConfig = require('./knexfile')
const dataLayer = require('./models/_main')
fastify.register(require('fastify-objectionjs'), {
knexConfig: knexConfig,
models: dataLayer
})
// Also tried:
// fastify.register(require('fastify-objectionjs'), {
// knexConfig: knexConfig,
// models: [dataLayer]
// })
/ модели / _main.js
const User = require('./user.model')
var dataLayer = [User]
module.exports = dataLayer
// Also tried without var:
// module.exports = {
// dataLayer: [
// User
// ]
// }
/ модели / user.model.js
const Knex = require('knex')
const connection = require('../knexfile')
const { Model } = require('objection')
const knexConnection = Knex(connection)
Model.knex(knexConnection)
class User extends Model {
static get tableName () {
return 'users'
}
}
module.exports = { User }
Я не могу найти проблему в потоке файлов, но если я создаю массив моделей на лету, приложение запускается плавно:
/ app.js (точка входа в узел)
const fastify = require('fastify')({
logger: true
})
const knexConfig = require('./knexfile')
const User = require('./models/user.model') // changed
fastify.register(require('fastify-objectionjs'), {
knexConfig: knexConfig,
models: [User] // changed
})
Есть идеи, почему это не работает?
Заранее спасибо за ваше время.