fastify не определено в модели
Я пытаюсь закрепиться с помощью fastify-bookshelfjs.
контакт (модель)
module.exports = async function (fastify) {
console.log("4")
fastify.bookshelf.Model.extend({
tableName: 'contacts',
})
}
контакт (контроллер)
console.log("3")
const Contact = require('../models/contact')()
// Get all contact
async function getContact(req, reply) {
const contacts = Contact.fetchAll()
reply.code(200).send(contacts)
}
module.exports = getContact
контакт (маршруты)
module.exports = async function (fastify) {
console.log("2")
const contact = require('../controller/contact')
fastify.get('/', contact.getContact)
}
Когда сервер запускается, я получаю этот вывод
2
3
4
(node:10939) UnhandledPromiseRejectionWarning: TypeError: Cannot read property 'bookshelf' of undefined
1
server listening on 3000
Почему в контакте (модель) fastify не определено и как это можно исправить?
1 ответ
Решение
В вашем controller
, когда вы импортируете модель, вам нужно поставить fastify
в качестве аргумента.
Кроме того, вы должны импортировать fastify
модуль.
Ваш контакт (контролер) должен быть
const fastify = require('fastify') // import the fastify module here
console.log("3")
const Contact = require('../models/contact')(fastify)
// Get all contact
async function getContact(req, reply) {
const contacts = Contact.fetchAll()
reply.code(200).send(contacts)
}
module.exports = getContact